爬虫设置代理

以下是自己总结的设置 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 }

 

posted @ 2018-09-07 12:02  SharePer  阅读(2248)  评论(0编辑  收藏  举报