5 行 Python 爬虫代码,就能采集每日资讯@_@

Posted 梦想橡皮擦

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了5 行 Python 爬虫代码,就能采集每日资讯@_@相关的知识,希望对你有一定的参考价值。

文章目录

⛳️ 实战场景

他,78 技术人社群的一个新人
他,每天都给大家分享今日新闻
他,正在学习 Python
他,昨天忽然觉得 Python 爬虫可以替代他手动操作。

擦哥说,一个初级爬虫工程师,即将诞生了,没准还是一个实战型程序员,用编程解决自己重复性的动作。

具备每日资讯的站点非常多,这次咱们选择:365 资讯简报,一个内容号,在 163 的地址如下所示:

https://www.Python地址加密.com/dy/media/T1603594732083.html

该账号每天做的事情就是【每天发一下新闻汇总】,然后前文的【他】把新闻搬到 78 技术人中来。

⛳️ 编码时间

上文提及的页面简单的分析之后,发现没有任何反爬技术,直接写代码,直接拿数据即可。

编码直接采用 requestslxml 库即可,代码直接面向过程编程。

由于是写给新手的教程,所以模块的安装必须提及一下:

pip install requests,lxml -i https://pypi.tuna.tsinghua.edu.cn/simple

然后梳理一下逻辑:

  • 第一步:采集列表页,然后循环进入详情页;
  • 第二步:采集详情页数据。

需求清晰,代码编写就变得简单了,直接走起,代码关键点都在注释中进行说明。

# 导入模块
import requests
from lxml import etree

# 设置请求地址,直接上常量
# 新闻列表页面地址
URL = "https://www.Python地址加密.com/dy/media/T1603594732083.html"
# 设置请求头
headers = 
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.102 Safari/537.36'

# 获取新闻列表页
resp = requests.get(URL, headers=headers).text
html = etree.HTML(resp)

# 获取第一条新闻
today_url = html.xpath("//ul[@class='list_box cur']/li/a/@href")[0]

# 获取详情页数据
resp_1 = requests.get(today_url, headers=headers).text
html_1 = etree.HTML(resp_1)

# 获取新闻详情
news_list = html_1.xpath('//div[@class="post_body"]/p[2]//text()')[1:]
print(news_list)

由于我们的目标是获取当日新闻,即获取列表页最新的一条数据,所以无需通过循环获取,直接定位到首条数据即可。

再次阅读代码,其实可以发现其中仅包含两个重要函数,其一是 requests.get(),该对象方法用户获取目标站点网页响应数据。
其二是 html_1.xpath(),该方法用于提取响应源码中的目标数据,即新闻聚合数据,学习的时候,重点关注这两个函数即可。

此时留给大家一个扩展需求,你可以将上述代码优化到几行呢?尝试一下,是否可以用5行以内代码完成相同的需求呢,这样就能满足我们的标题啦~

📢📢📢📢📢📢
💗 你正在阅读 【梦想橡皮擦】 的博客
👍 阅读完毕,可以点点小手赞一下
🌻 发现错误,直接评论区中指正吧
📆 橡皮擦的第 714 篇原创博客

从订购之日起,案例 5 年内保证更新

以上是关于5 行 Python 爬虫代码,就能采集每日资讯@_@的主要内容,如果未能解决你的问题,请参考以下文章

码农吸猫必备,几行代码就能采集万张猫咪图

Python爬虫实战案例:爬取新闻资讯

Python 网络爬虫与数据采集

python 爬虫 requests+BeautifulSoup 爬取巨潮资讯公司概况代码实例

人人都会数据采集- Scrapy 爬虫框架入门 | 岂安低调分享

20行Python scrapy 代码,去采集蓝桥训练营