爬蟲設置代理
阿新 • • 發佈:2018-09-07
http www. log response 端口號 request 自定義 url 添加
以下是自己總結的設置 IP 代理的幾種方法,僅供參考
方法一:
requests發送請求添加代理
proxies = {‘http‘:‘代理 IP:端口號‘}
實例:
1 import requests 2 3 url = ‘www.baidu.com‘ 4 5 response = request.get(url=url, proxies={‘http‘:‘ip:port‘})
方法二:
調用 ProxyHandler 添加 代理
實例:
1 from urllib import request 2 3 url = ‘www.baidu.com‘ 45 # 設置代理 6 handler = request.ProxyHandler({‘http‘:‘ip:port‘}) 7 opener = request.bulid_opener(handler) 8 9 # 發送請求 10 req = request.Request(url=url) 11 response = opener.open(req)
方法三:
使用 client 建立連接,添加代理 IP,port
實例:
1 from http import client 2 3 url = ‘www.baidu.com‘ 4 5 conn = client.HTTPConnection(ip, port, timeout=5)6 response = conn.request(‘GET‘,url=url)
方法四
在 scrapy下載中間件添加代理
- middlewares.py 自定義一個代理類,重寫 process_request 方法
1 class MyDaiLi(object): 2 """docstring for MyDaiLi""" 3 # 重寫這個方法 4 def process_request(self, request, spider): 5 request.meta[‘proxy‘] = ‘http://ip:port‘
- settings.py (第55行)打開下載中間件,並將自定義的 MyDaiLi添加進去
1 DOWNLOADER_MIDDLEWARES = { 2 ‘daili_loginproject.middlewares.MyDaiLi‘: 543, 3 }
爬蟲設置代理