结构化爬虫——通过搜索抓取网站

本文介绍了如何进行结构化爬虫,通过分析百度网站的URL模式,定位搜索关键词“cad”的结果。重点在于理解URL的共同点和结果链接的HTML结构,以构造爬虫函数。爬取过程中注意到相对与绝对链接的处理,并提供了适用于多个关键词的循环策略。
摘要由CSDN通过智能技术生成

结构化爬虫——通过搜索抓取网站

本次主要分享如何像人类使用搜索条一样爬取网站,即在网站上搜索关键词或者主题并收集搜索结果。

前期准备

通过搜索抓取网站会随着网站的不同而有很大可变性的任务,因此在爬取之前要注意分析url的共同点并且构造好相关函数。本次爬取选取百度网站来抓取几个不同关键词的结果(因为国内可用的搜索引擎差距不大,所以只选取百度一个来进行演练。)

  1. 网站分析:可以发现,百度网址资讯板块里面针对不同的关键词的差别主要“word=keywords”,因此只要控制好了keywords,就可以比较好的定位到关键词。
https://www.baidu.com/s?rtt=1&bsst=1&cl=2&tn=news&word=python
https://www.baidu.com/s?rtt=1&bsst=1&cl=2&tn=news&word=cad
  1. 进一步分析:搜索关键词之后,会出现许多结果链接,通过对网站进行检查发现许多结果链接存在于“div.result h3 a ”标签下,这可以进一步定位结果链接;而每个结果链接可能是相对链接(如/articles/page.html)或者绝对链接(如https://www.baidu.com/articles/page.html),这些都需要在定义函数时进行处理,作为筛选确定结果链接的条件。
  2. 类的定义:
class Content:
    #所有文章/网页的共同基类
    def __init__(self,topic,url,title,body):
        self.topic=topic
        self.url=url
        self.title=title
        self.body=body
    def print(self):#打印函数,控制结果输出,方便引用
        print("找到的相关关键字的文章:{}".format(self.topic))
        print("网址:{}".format(self.url))
        print("标题:{}".format(self.title))
        
  • 3
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值