上一期主要讲解:连接网站,解析HTML。上一期只是一个简单的例子,获取了网站的一小部分内容。本期开始说明需要获取网站列表的所有文章。在开始之前,还是要提醒大家:在抓取网页的时候,一定要慎重考虑自己需要消耗多少网络流量,尽量想一想是否可以降低采集目标的服务器负载。此示例从TheScrapingBeeBlog收集文章。在做数据采集之前,先分析一下网站,看看代码结构。需要收集的部分由小卡片一张一张组成。截图如下:获取所有卡片的父标签后,循环单张卡片的内容:单张卡片的内容就是我们需要的。理清思路后,开始补代码:首先我们还是复用之前连接网站的代码:def__init__(self):self._target_url='https://www.scrapingbee.com/blog/'self._init_connection=connection_util.ProcessConnection()上面的代码定义了一个收集到的url,与上一期的网站连接代码同时被复用。#连接目标网站并获取内容get_content=self._init_connection.init_connection(self._target_url)连接上面定义的目标网站并获取网站内容。如果get_content:parent=get_content.findAll("section",{"class":"section-sm"})[0]get_row=parent.findAll("div",{"class":"col-lg-12mb-5mb-lg-0"})[0]如果有内容,搜索网站内容的标签。以上是获取所有卡片的父标签。您可以自行查看网站的完整内容,获取具体的网站结构。get_child_item=get_row.findAll("div",{"class":"col-md-4mb-4"})获取所有小卡片。foriteminget_child_item:#获取标题文本get_title=item.find("a",{"class":"h5d-blockmb-3post-title"}).get_text()#获取发布时间get_release_date=物品。find("div",{"class":"mb-3mt-2"}).findAll("span")[1].get_text()#获取文章描述get_description=item.find("p",{"class":"card-textpost-description"}).get_text()之后遍历得到的小卡片,获取每张卡片文章的标题、发布时间、文章描述。以上从网站结构的分析开始,到具体的代码实现。这是爬虫提取网站内容的一个基本思路。每个网站不一样,结构也会不一样,所以要有针对性的写代码。以上代码已经托管在Github上,地址:https://github.com/sycct/Scra...文章来源:爬虫识别-爬虫系列:数据采集
