python 代理的使用
生活随笔
收集整理的這篇文章主要介紹了
python 代理的使用
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
這里分享一個測試ip的網址? ? ?http://ip.filefab.com/index.php
?
scrapy 隨機請求頭和代理ip的使用原理
import random# 添加一個中間鍵class User_AgentMiddleware(object):def __init__(self):self.user_agent = ["Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/22.0.1207.1 Safari/537.1","Mozilla/5.0 (X11; CrOS i686 2268.111.0) AppleWebKit/536.11 (KHTML, like Gecko) Chrome/20.0.1132.57 Safari/536.11", "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1061.1 Safari/536.3", "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1061.1 Safari/536.3", "Mozilla/5.0 (Windows NT 6.2) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1061.0 Safari/536.3", "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/535.24 (KHTML, like Gecko) Chrome/19.0.1055.1 Safari/535.24", "Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/535.24 (KHTML, like Gecko) Chrome/19.0.1055.1 Safari/535.24", ]
# scrapy抓取前修改請求頭 def process_request(self, request, spider): # 添加代理 request.meta['proxy'] = 'http://119.42.70.216:8080' # 這里不區分 http還是https代理 # 添加隨機請求頭 ua = random.choice(self.user_agent) request.headers['User-Agent'] = ua # 默認返回None, 繼續執行下一步操作 # Response: 直接返回(沒有經過process_response, 和process_exception) # Request: 重新進行調用本次process_request的請求 # IgnoreRequest:
# 判斷應抓到網頁的狀態 def process_response(self, request, response, spider): print(response.headers) if response.status != 200: return request else: return response # 必須有返回值 # request: 重新進行調用本次process_request的請求 # response:返回源碼 # IgnoreRequest: 拋出異常, 則Request的errorback()方法被回調。 如異常沒被處理, 則會被忽略
?
request中添加代理
?
# 首先確認代理的類型 是http還是https的來判斷proxie的取值proxie = {"http": "http://113.71.211.184:8197", }respons = requests.get('http://ip.filefab.com/index.php', proxies=proxie) doc = etree.HTML(respons.text) print(doc.xpath('.//h1[@id="ipd"]/span/text()'))?
轉載于:https://www.cnblogs.com/yijian001/p/9015977.html
總結
以上是生活随笔為你收集整理的python 代理的使用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【新手提问导读】提问的艺术
- 下一篇: kuangbin带我飞QAQ DLX之一