python基础之随机设置访问头

前言:我们在爬虫中访问网站一般都需要请求头!今天我们编写一段随机请求的代码!可以说是方便以后使用!

在编写代码前导入新的模块)

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'))

设置随机抽取我觉得还是挺方便的   可以把它当做一个包!   随用随拿!

你可能感兴趣的:(学以致用)