码迷,mamicode.com
首页 > Web开发 > 详细

urllib基础-利用网站结构爬取网页-百度搜索

时间:2018-06-24 16:54:42      阅读:178      评论:0      收藏:0      [点我收藏+]

标签:request   需要   port   爬取网页   baidu   NPU   成功   www   编码   

  有的时候爬取网页,可以利用网站额结构特点爬取网页

  在百度搜索框中输入搜索内容,单击搜索,浏览器会发送一个带有参数的url请求。尝试删除其中的一些参数,只剩下wd这个参数。发现wd是搜索内容。这样程序可以根据不同的wd值,请求不同的网页。

  

 1 from urllib import request,parse
 2 
 3 # 构造请求对象
 4 def baidu(wd):
 5     # 爬取的网页
 6     base_url = http://www.baidu.com/s?
 7 
 8     qs = {
 9         wd : wd
10     }
11 
12     # 进行url编码
13     qs = parse.urlencode(qs) # wd=hello
14 
15     # 构造请求对象
16     req = request.Request(base_url + qs)
17 
18     # 发送请求
19     response = request.urlopen(req)
20 
21     # 获取网页内容
22     html = response.read().decode(utf-8)
23 
24     #打印网页
25     print(html)
26 
27 
28 if __name__ == "__main__":
29     while True:
30         wd=input(请输入要搜索的内容:)
31         if wd == q: #输入 q 退出
32             break
33         baidu(wd) #下载网页

浏览器中发送请求的url中包含汉字是不能请求成功的,需要将汉字进行url编码。(可以在“站长工具”中在线编码解码)。

这里使用parse.urlencode()进行url编码。将编码之后的内容与原url进行拼接,形成完整的url。

 

urllib基础-利用网站结构爬取网页-百度搜索

标签:request   需要   port   爬取网页   baidu   NPU   成功   www   编码   

原文地址:https://www.cnblogs.com/doitjust/p/9220762.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!