处理GET请求
GET请求一般用于向服务器获取数据,比如说,我们用百度搜索传智播客(URL是“https://www.baidu.com/s?wd=
传智播客”),浏览器跳转的页面如图1所示。
图1 GET请求
此时,如果使用Fiddler查看HTTP请求,发现有个GET请求的格式如下:
https://www.baidu.com/s?wd=%E4%BC%A0%E6%99%BA%E6%92%AD%E5%AE%A2](https://www.baidu.com/s?wd=传智播客)
在这个请求中,“?”后面的字符串就包含了我们要查询的关键字“传智播客”。下面,我们尝试使用GET方式发送请求,具体代码如下:
import urllib.request
import urllib.parse
url = "http://www.baidu.com/s"
word = {"wd": "传智播客"}
word = urllib.parse.urlencode(word) #转换成url编码格式(字符串)
new_url = url + "?" + word
headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64)
AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36"}
request = urllib.request.Request(new_url, headers = headers)
response = urllib.request.urlopen(request)
html = response.read().decode('UTF-8')
print(html)
运行程序,程序输出的结果和使用浏览器搜索网页 “https://www.baidu.com/s?wd=
传智播客”的源代码是一模一样的,由此说明我们成功爬取了页面。