前言:我们在爬虫中访问网站一般都需要请求头!今天我们编写一段随机请求的代码!可以说是方便以后使用!
在编写代码前导入新的模块)
from urllib import request
from urllib.request import build_opener,ProxyHandler
import random
1,编写多个请求头!
根据不同的浏览器抽取的多个访问头
#user_Agent列表
user_agent_list = [
"Mozilla/5.0(Macintosh;IntelMacOSX10.6;rv:2.0.1)Gecko/20100101Firefox/4.0.1",
"Mozilla/4.0(compatible;MSIE6.0;WindowsNT5.1)",
"Opera/9.80(WindowsNT6.1;U;en)Presto/2.8.131Version/11.11",
"Mozilla/5.0(Macintosh;IntelMacOSX10_7_0)AppleWebKit/535.11(KHTML,likeGecko)Chrome/17.0.963.56Safari/535.11",
"Mozilla/4.0(compatible;MSIE7.0;WindowsNT5.1)",
"Mozilla/4.0(compatible;MSIE7.0;WindowsNT5.1;Trident/4.0;SE2.XMetaSr1.0;SE2.XMetaSr1.0;.NETCLR2.0.50727;SE2.XMetaSr1.0)"
]
2,编写ip1
自定义多个ip地址
ip_list=[
'120.194.7.50',
'117.68.253.144',
'192.168.52.96'
]
3,使用random函数,随机抽取访问头,ip
#产生一个随机user-agent
header={
#从上面的列表上随机取一个
"User-Agent":random.choice(user_agent_list)
}
#产生一个随机ip
proxies = {
'http':random.choice(ip_list)
}
4,随机抽取请求头访问网站
#使用随机ip与请求头
req = request.Request('https://www.qiushibaike.com',headers=header)
# res= request.urlopen(req) 使用的是本机的ip urlopen
# print(res.read())
#------------------------------------------------
#创建代理对象
proxy_handler = ProxyHandler(proxies)
# print(proxies)
#不能使用urlopen函数,使用build_opener()创建一个对象
opener = build_opener(proxy_handler)
#发送请求
res = opener.open(req)
print(res.read().decode('utf-8'))
5,完整代码
from urllib import request
from urllib.request import build_opener,ProxyHandler
# build_opener函数可以设置更多的函数
# ProxyHandler
import random
#user_Agent列表
user_agent_list = [
"Mozilla/5.0(Macintosh;IntelMacOSX10.6;rv:2.0.1)Gecko/20100101Firefox/4.0.1",
"Mozilla/4.0(compatible;MSIE6.0;WindowsNT5.1)",
"Opera/9.80(WindowsNT6.1;U;en)Presto/2.8.131Version/11.11",
"Mozilla/5.0(Macintosh;IntelMacOSX10_7_0)AppleWebKit/535.11(KHTML,likeGecko)Chrome/17.0.963.56Safari/535.11",
"Mozilla/4.0(compatible;MSIE7.0;WindowsNT5.1)",
"Mozilla/4.0(compatible;MSIE7.0;WindowsNT5.1;Trident/4.0;SE2.XMetaSr1.0;SE2.XMetaSr1.0;.NETCLR2.0.50727;SE2.XMetaSr1.0)"
]
#产生一个随机user-agent
header={
#从上面的列表上随机取一个
"User-Agent":random.choice(user_agent_list)
}
#ip地址列表
ip_list=[
'120.194.7.50',
'117.68.253.144',
'192.168.52.96'
]
#产生随机ip
proxies = {
'http':random.choice(ip_list)
}
#使用随机ip与请求头
req = request.Request('https://www.qiushibaike.com',headers=header)
# res= request.urlopen(req) 使用的是本机的ip urlopen
# print(res.read())
#------------------------------------------------
#创建代理对象
proxy_handler = ProxyHandler(proxies)
# print(proxies)
#不能使用urlopen函数,使用build_opener()创建一个对象
opener = build_opener(proxy_handler)
#发送请求
res = opener.open(req)
print(res.read().decode('utf-8'))
设置随机抽取我觉得还是挺方便的 可以把它当做一个包! 随用随拿!