爬虫设置代理
以下是自己总结的设置 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' 4 5 # 设置代理 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 }