标签: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。
标签:request 需要 port 爬取网页 baidu NPU 成功 www 编码
原文地址:https://www.cnblogs.com/doitjust/p/9220762.html