前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >爬虫系列:数据采集

爬虫系列:数据采集

作者头像
太后
修改2021-10-19 17:55:53
4460
修改2021-10-19 17:55:53
举报
文章被收录于专栏:短信接收服务

在上一期,主要讲解了:连接网站与解析 HTML

上一期只是一个简单的例子,获取了网站的一小部分内容,本期开始讲解需要获取网站的所有文章列表。

在开始以前,还是要提醒大家:在网络爬虫的时候,你必须非常谨慎地考虑需要消耗多少网络流量,还要尽力思考能不能让采集目标的服务器负载更低一点。

本次示例采集The ScrapingBee Blog博客的文章。

在做数据采集以前,对网站经行分析,看看代码结构。

需要采集的部分是一个个的小 card 组成,截图如下:

multiple card
multiple card

获取所有卡片的父标签之后,循环单个卡片的内容:

one item card
one item card

单个卡片的内容,就是我们需要的内容,整理完思路之后,开始完成代码:

首先我们还是复用上一期网站连接的代码:

代码语言:txt
复制
def __init__(self):
代码语言:txt
复制
    self._target_url = 'https://www.scrapingbee.com/blog/'
代码语言:txt
复制
    self._init_connection = connection_util.ProcessConnection()

以上代码定义了一个被采集的网址,同时复用上一期的网站连接代码。

代码语言:txt
复制
    # 连接目标网站,获取内容
代码语言:txt
复制
    get_content = self._init_connection.init_connection(self._target_url)

连接到上面定义的目标网站,并获取网站的内容。

代码语言:txt
复制
    if get_content:
代码语言:txt
复制
        parent = get_content.findAll("section", {"class": "section-sm"})[0]
代码语言:txt
复制
        get_row = parent.findAll("div", {"class": "col-lg-12 mb-5 mb-lg-0"})[0]

如果存在内容,对网站内容的标签经行查找,以上是获取所有 card 的父标签,获取具体网站结构可以自己查看网站的完整内容。

代码语言:txt
复制
        get_child_item = get_row.findAll("div", {"class": "col-md-4 mb-4"})

获取所有小卡片。

代码语言:txt
复制
        for item in get_child_item:
代码语言:txt
复制
            # 获取标题文字
代码语言:txt
复制
            get_title = item.find("a", {"class": "h5 d-block mb-3 post-title"}).get_text()
代码语言:txt
复制
            # 获取发布时间
代码语言:txt
复制
            get_release_date = item.find("div", {"class": "mb-3 mt-2"}).findAll("span")[1].get_text()
代码语言:txt
复制
            # 获取文章描述
代码语言:txt
复制
            get_description = item.find("p", {"class": "card-text post-description"}).get_text()

之后对获取的小卡片经行遍历,获取每个卡片的文章的标题,发布时间,文章描述。

以上从网站结构开始分析,到具体代码实现,这是爬虫抽取网站内容的一个基本思路。

每个网站不同,结构也会有所不同,所以要针对性的编写代码。

以上代码已托管在 Github,地址:https://github.com/sycct/Scrape_1_1/

文章来源:爬虫识别 - 爬虫系列:数据采集

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文系转载前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档