爬虫系列:数据采集

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

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

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

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

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

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

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

multi-card-2021-10-15-175954.jpg

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

one-item-card-2021-10-15-180036.jpg

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

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

def __init__(self):

self._target_url = 'https://www.scrapingbee.com/blog/'
self._init_connection = connection_util.ProcessConnection()

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

# 连接目标网站,获取内容
get_content = self._init_connection.init_connection(self._target_url)

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

if get_content:
    parent = get_content.findAll("section", {"class": "section-sm"})[0]
    get_row = parent.findAll("div", {"class": "col-lg-12 mb-5 mb-lg-0"})[0]

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

    get_child_item = get_row.findAll("div", {"class": "col-md-4 mb-4"})

获取所有小卡片。

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

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

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

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

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

文章来源: 爬虫识别 - 爬虫系列:数据采集
相关文章
|
7月前
|
数据采集 存储 API
网络爬虫与数据采集:使用Python自动化获取网页数据
【4月更文挑战第12天】本文介绍了Python网络爬虫的基础知识,包括网络爬虫概念(请求网页、解析、存储数据和处理异常)和Python常用的爬虫库requests(发送HTTP请求)与BeautifulSoup(解析HTML)。通过基本流程示例展示了如何导入库、发送请求、解析网页、提取数据、存储数据及处理异常。还提到了Python爬虫的实际应用,如获取新闻数据和商品信息。
1091 2
|
7月前
|
数据采集 数据可视化 数据挖掘
使用Python编写Web爬虫实现数据采集与分析
在当今信息化时代,数据是企业发展和决策的重要依据。本文将介绍如何使用Python编写Web爬虫来实现对特定网站数据的自动采集,并结合数据分析技术,为读者展示如何利用爬虫技术获取有价值的信息并进行有效的数据处理和分析。
|
7月前
|
数据采集 存储 开发者
Python爬虫实战:打造高效数据采集工具
本文将介绍如何利用Python编写一个高效的网络爬虫,实现对特定网站数据的快速抓取与处理,帮助开发者更好地应对大规模数据采集的需求。
|
7月前
|
数据采集 数据挖掘 API
主流电商平台数据采集API接口|【Python爬虫+数据分析】采集电商平台数据信息采集
随着电商平台的兴起,越来越多的人开始在网上购物。而对于电商平台来说,商品信息、价格、评论等数据是非常重要的。因此,抓取电商平台的商品信息、价格、评论等数据成为了一项非常有价值的工作。本文将介绍如何使用Python编写爬虫程序,抓取电商平台的商品信息、价格、评论等数据。 当然,如果是电商企业,跨境电商企业,ERP系统搭建,我们经常需要采集的平台多,数据量大,要求数据稳定供应,有并发需求,那就需要通过接入电商API数据采集接口,封装好的数据采集接口更方便稳定高效数据采集。
|
5月前
|
数据采集 存储 API
在信息时代,Python爬虫用于自动化网络数据采集,提高效率。
【7月更文挑战第5天】在信息时代,Python爬虫用于自动化网络数据采集,提高效率。基本概念包括发送HTTP请求、解析HTML、存储数据及异常处理。常用库有requests(发送请求)和BeautifulSoup(解析HTML)。基本流程:导入库,发送GET请求,解析网页提取数据,存储结果,并处理异常。应用案例涉及抓取新闻、商品信息等。
95 2
|
7月前
|
数据采集 Web App开发 JavaScript
爬虫技术升级:如何结合DrissionPage和Auth代理插件实现数据采集
本文介绍了在Python中使用DrissionPage库和Auth代理Chrome插件抓取163新闻网站数据的方法。针对许多爬虫框架不支持代理认证的问题,文章提出了通过代码生成包含认证信息的Chrome插件来配置代理。示例代码展示了如何创建插件并利用DrissionPage进行网页自动化,成功访问需要代理的网站并打印页面标题。该方法有效解决了代理认证难题,提高了爬虫的效率和安全性,适用于各种需要代理认证的网页数据采集。
385 0
爬虫技术升级:如何结合DrissionPage和Auth代理插件实现数据采集
|
4月前
|
数据采集 存储 JSON
自动化数据采集:Lua爬虫与JSON解析的深度整合
自动化数据采集:Lua爬虫与JSON解析的深度整合
|
6月前
|
数据采集 存储 分布式计算
Nutch爬虫在大数据采集中的应用案例
Nutch爬虫在大数据采集中的应用案例
|
6月前
|
数据采集 网络协议
做爬虫数据采集需要哪种类型代理
在爬虫数据采集时,选择HTTP/HTTPS代理或SOCKS代理(特别是SOCKS5)以处理不同协议和提升匿名性。私密代理提供更高安全性和速度,而共享代理更具成本效益。高匿代理能最大程度隐藏真实IP和代理使用,降低被封锁风险。选择应基于任务需求和目标网站反爬策略。
|
5月前
|
数据采集 存储 自然语言处理
Python爬虫与数据可视化:构建完整的数据采集与分析流程
Python爬虫与数据可视化:构建完整的数据采集与分析流程