request中如何添加代理配置

先领会防止爬虫被反的两个策略;在进行request代办署理设置 。

需要这些哦
浏览器、电脑
方式/
1饭爬虫第一招:
动态设置User-Agent(随机切换User-Agent , 模拟分歧用户的浏览器信息)
然后 , 采用 random随机模块的choice方式随机选择User-Agent , 这样每次请求城市从中选择 , 请求很频仍的话就多找几个user-agent 。
def load_page(url, form_data):
    USER_AGENTS = [
        "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0; .NET CLR 3.5.30729; .NET CLR 3.0.30729; .NET CLR 2.0.50727; Media Center PC 6.0)",
        "Mozilla/5.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; .NET CLR 1.0.3705; .NET CLR 1.1.4322)",
        "Mozilla/4.0 (compatible; MSIE 7.0b; Windows NT 5.2; .NET CLR 1.1.4322; .NET CLR 2.0.50727; InfoPath.2; .NET CLR 3.0.04506.30)",
        "Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN) AppleWebKit/523.15 (KHTML, like Gecko, Safari/419.3) Arora/0.3 (Change: 287 c9dfb30)",
        "Mozilla/5.0 (X11; U; Linux; en-US) AppleWebKit/527+ (KHTML, like Gecko, Safari/419.3) Arora/0.6",
        "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.2pre) Gecko/20070215 K-Ninja/2.1.1",
        "Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9) Gecko/20080705 Firefox/3.0 Kapiko/3.0",
        "Mozilla/5.0 (X11; Linux i686; U;) Gecko/20070322 Kazehakase/0.4.5"
    ]
    user_agent = random.choice(USER_AGENTS)
     
    headers = {
        'User-Agent':user_agent
    }

request中如何添加代理配置

文章插图

2反爬虫第二招:
利用IP地址池:VPN和代办署理IP , 此刻大部门网站都是按照IP来ban的 。
因为良多网站会检测某一段时候某个IP的拜候次数(经由过程流量统计 , 系统日记等) , 若是拜候次数多的不像正常人 , 它会禁止这个IP的拜候 。
【request中如何添加代理配置】所以我们可以设置一些代办署理办事器 , 每隔一段时候换一个代办署理 , 就算IP被禁止 , 依然可以换个IP继续爬取 。
urllib2中经由过程ProxyHandler来设置利用代办署理办事器
ProxyHandler处置器(代办署理设置): 这样就设置了一个无需认证的代办署理
import urllib2
#设置一个代办署理hander
httpproxy_handler = urllib2.ProxyHandler({"http" : "124.88.67.81:80"})
opener = urllib2.build_opener(httpproxy_handler)
request = urllib2.Request("http://www.baidu.com/")
response = opener.open(request)
print response.read()

request中如何添加代理配置

文章插图

3若是代办署理IP足够多 , 就可以随机选择一个代办署理去拜候网站 。
import urllib2
import random
proxy_list = [
    {"http" : "124.88.67.81:80"},
    {"http" : "124.88.67.81:80"},

推荐阅读