0
点赞
收藏
分享

微信扫一扫

python爬虫-urllib-get请求的quote方法

想溜了的蜗牛 2022-03-11 阅读 92

get请求的quote方法

我们先来个爬虫三板斧:

import urllib.request
url='https://www.baidu.com/s?wd='
headers={
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.102 Safari/537.36'
}

#请求对象的定制

request=urllib.request.Request(url=url,headers=headers)

#模拟浏览器向服务器发送请求

response=urllib.request.urlopen(request)

#获取响应的内容

content=response.read().decode('utf-8')
print(content)

我们观察到wd=后面就是搜索的内容,但是我们从拓展中得知中文必须要转换成unicode才能识别,这时候我们用到get请求中的quote方法。
完整代码:

import urllib.request
import urllib.parse
url='https://www.baidu.com/s?wd='
headers={
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.102 Safari/537.36'
}

#将周杰伦转换成unicode编码的格式
name=urllib.parse.quote('周杰伦')
url=url+name
#请求对象的定制

request=urllib.request.Request(url=url,headers=headers)

#模拟浏览器向服务器发送请求

response=urllib.request.urlopen(request)

#获取响应的内容

content=response.read().decode('utf-8')
print(content)

get请求的urlencode方法

上面的quote方法面对几个的数据时还能正常使用,但是一旦要处理大量的数据就显得力不从心,这里引进urlencode方法,它可以将数据从字典中提取并转换成unicode编码格式,并用&符号自动连接,在处理大量数据时有优势。
看代码就懂了:



import urllib.request
import urllib.parse
url='https://www.baidu.com/s?'

base_url='https://www.baidu.com/s?'
data={
'wd':'周杰伦',
'sex':'男',
'location':'中国台湾省'
}
new_data=urllib.parse.urlencode(data)
url=base_url+new_data


headers={
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.102 Safari/537.36'
}

#将周杰伦转换成unicode编码的格式
name=urllib.parse.quote('周杰伦')
url=url+name
#请求对象的定制

request=urllib.request.Request(url=url,headers=headers)

#模拟浏览器向服务器发送请求

response=urllib.request.urlopen(request)

#获取响应的内容

content=response.read().decode('utf-8')
print(content)










举报

相关推荐

0 条评论