我們上次說了偽裝頭部
↓
python爬蟲17 | 聽說你又被封 ip 了,你要學會偽裝好自己,這次說說偽裝你的頭部
讓自己的 python 爬蟲假裝是瀏覽器
小帥b主要是想讓你知道
在爬取網站的時候
要多的站在對方的角度想問題
其實
這和泡妞差不多
你要多站在妹紙的角度思考
她的興趣是什麼
她喜歡什麼
而不是自己感動自己
單方面的瘋狂索取
哦..
扯遠了
我們回到反爬蟲
這次教你怎麼偽裝自己的 ip 地址
別讓對方輕易的就把你給封掉
如何偽裝呢
那麼
接下來就是
學習 python 的正確姿勢
對於 python 來說
使用代理訪問很簡單
就拿我們經常使用的 requests 庫來說
使用代理 ip 如下
定義代理IP
proxie = { http : http://xx.xxx.xxx.xxx:xxxx, http : http://xxx.xx.xx.xxx:xxx, .... }
使用代理
response = requests.get(url,proxies=proxies)
這樣就可以使用你定義的代理地址去訪問網站了
我知道你要問了
代理地址哪裡來
在網上有很多免費的代理
隨便搜就有一堆了
不過你知道的
免費的話很多人都去使用
所以這些代理IP很不穩定
如果你有錢的話
市面上有人就專門提供代理IP的
直接去買就行了
不想花錢呢?
可以搞一個IP代理池
主要就是通過 python 程序去抓取網上大量免費的代理 ip
然後定時的去檢測這些 ip 可不可以用
那麼下次你要使用代理 ip 的時候
你只需要去自己的 ip 代理池裡面拿就行了
道理都懂
但是不想自己弄一個代理池
有沒有現成的?
不瞞你說
小帥b發現了一個不錯的開源 ip 代理池
https://github.com/Python3WebSpider/ProxyPool.git
如何使用呢
首先使用 git clone 將源代碼拉到你本地
git clone https://github.com/Python3WebSpider/ProxyPool.git
接著打開項目中的 setting.py
在這裡可以配置相關信息
比如 Redis 的地址密碼相關
(如果你之前沒有使用過 redis 的話,可以到如下地址下載 https://github.com/MicrosoftArchive/redis/releases)
接著在你 clone 下來的文件目錄中
安裝相關所需的 python 模塊
pip3 install -r requirements.txt
接下來開啟你的 redis
redis 的默認埠就是 6379
接著就可以運行 run.py 了
代理池開始運行 * Running on http://0.0.0.0:5555/ (Press CTRL+C to quit) 開始抓取代理 獲取器開始執行 Crawling http://www.66ip.cn/1.html 正在抓取 http://www.66ip.cn/1.html 抓取成功 http://www.66ip.cn/1.html 200 成功獲取到代理 201.69.7.108:9000 成功獲取到代理 111.67.97.58:36251 成功獲取到代理 187.32.159.61:51936 成功獲取到代理 60.13.42.154:9999 成功獲取到代理 106.14.5.129:80 成功獲取到代理 222.92.112.66:8080 成功獲取到代理 125.26.99.84:60493 ...
如果你在運行的時候出現這個錯誤
更新一下 redis 版本
pip3 install redis==2.10.6
運行 run.py
這時候在你的 redis 中就有爬取到的代理 ip 了
項目跑起來之後
你就可以訪問你的代理池了
比如隨機獲取一個代理 ip 地址
http://localhost:5555/random
這樣訪問之後就會獲取到一個代理 ip
在代碼中獲取代理也不在話下啦
import requests ? PROXY_POOL_URL = http://localhost:5555/random ? def get_proxy(): try: response = requests.get(PROXY_POOL_URL) if response.status_code == 200: return response.text except ConnectionError: return None
恩
這樣
我們就成功的在我們的代理池中獲取代理 ip 了
那麼下次誰還敢封你ip
你就拿出你的代理ip
繼續爬唄
peace
帥b老仙
法力無邊
給我點贊,繼續發力!
TAG:Python入門 | Python開發 | python爬蟲 |