关于请求的方式
不同网页的请求方式不同,请求方式需要在网页打开后台来查询
post请求的特点
1、post请求的参数,必须要事先用urlencode编码,urlencode会把字典变成Unicode编码,这时要再用encode('utf-8)
把Unicode码变成byte!
2、post请求的参数需要放在一个列表中,在生成request对象的时候,作为data参数传入
3、获取到网页的源码后,记得要反序列化后才能阅读。
#post请求
import urllib.request
import urllib.parse
import json
url = 'https://fanyi.baidu.com/sug' #在原网页中,可以看出url的请求方式是post
headers = {
'Accept':
'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
'User-Agent':
'Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Mobile Safari/537.36 Edg/118.0.2088.46'
}
data={
'kw':'spider'
}
data = urllib.parse.urlencode(data).encode('utf-8')
request = urllib.request.Request(url=url,data=data,headers=headers)
response = urllib.request.urlopen(request)
content = response.read().decode('utf-8')
print(content)
print(type(content))
#反序列化,把字符串变成字典
obj = json.loads(content)
print(obj)
print(type(obj))