百度网页关键字抓取(如何用python代码实现百度搜索关键词的功能?(图))

优采云 发布时间: 2022-04-10 06:05

  百度网页关键字抓取(如何用python代码实现百度搜索关键词的功能?(图))

  需要:

  如何用python代码实现百度搜索关键词的功能?

  例如输入关键词: "python crawler" 获取一页搜索结果并保存在本地。

  这是经典的python爬虫教学案例之一,也是比较基础的python实现。今天主要是通过python自带的urllib库来实现的。

  可以通过三个步骤来实现:

  第一步:练习。打开百度搜索,输入关键词进行搜索。

  

  第 2 步:观察。查看链接并在链接中找到模式。

  

  复制链接如下:

  /S? ie = utf-8 & f = 8 & rsv_bp = 0 & rsv_idx = 1 & tn = baidu & wd = python% E7% 88% AC% E8% 99% AB & rsv_pq = a97a24c90000e2cf & rsv_t = daefWbxSi2yiQKK2% 2BkIBk3n% 2F4baWUEK6HEVKKB8D4baWUEK6HEVkm6 rqlang = cn & rsv_enter = 1 & rsv_sug3 = 14 & rsv_sug1 = 13 & rsv_sug7 = 101

  看到这么长的名单是不是很害怕?!

  其实越复杂的东西,纸老虎就越多。通过观察,此链接中的关键信息只是下划线部分的一小部分:

  

  你为什么这么说?

  因为如果你删除了剩下的信息,你再次搜索时可以得到相同的搜索结果。换言之,其他信息是可选的。

  

  其实仔细看,你会发现这个链接中有很多“&”符号。&的作用是将不同的字段连接起来形成一个完整的url。这些字段就像是一个表单的表头,有些字段是必须要填写的,例如字段“wd=...”表示关键词,而“ie=utf-8”是编码字段, 使用 utf-8 编码。

  那么你怎么知道什么是关键信息呢?有哪些可选字段?

  这很简单。删除了你认为不重要的字段后,如果还能搜索到,说明这个字段不重要。

  另外你可能会疑惑,明明关键词的输入是“python crawler”,为什么链接变成了“wd=python%E7%88%AC%E8%99%AB”,因为中文在搜索是自动转换为编码。我们在编写代码时也应该注意。如果输入关键词中有中文,我们需要处理关键词,可以通过urllib.request.quote()来处理。

  第三步:编写代码

  

  首先,在urllib库中导入请求,

  接下来设置关键词,因为关键词收录中文,使用quote()方法转码;

  然后,构造url,我们发现wd是关键词的接口,所以url部分只需要加上关键字关键词;

  然后就可以通过Request()封装成一个request请求,通过urlopen()提交给服务器,返回响应结果。

  最后,通过open()、write()方法将页面保存到本地,并关闭文件。

  需要注意的是,构造url的时候是http,不是https。因为https是网络的安全协议模式,所以需要证书才能返回响应,没有证书就不会返回结果。

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线