反反爬蟲
通常通過如下方法來進行反爬蟲
- 檢查User-Agent
- 驗證碼
- 一個IP訪問的頻次或總的訪問次數(shù)
- cookie有效時間
- 數(shù)據(jù)存儲為圖片格式
應(yīng)對方法:
- 隨機UA
# -*- coding:utf-8 -*-
"""
File Name : 'random_ua'.py
Description:
Author: 'chengwei'
Date: '2016/5/13' '16:31'
"""
import sys
import random
# reload(sys)
# sys.setdefaultencoding('utf-8')
def example():
print random_chose()
def random_chose():
"""
隨機返回列表中的UA
:return:
"""
user_agents = ['Mozilla/5.0 (Windows NT 6.1; WOW64; rv:23.0) Gecko/20130406 Firefox/23.0',
'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:18.0) Gecko/20100101 Firefox/18.0',
'Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/533+ (KHTML, like Gecko) Element Browser 5.0',
'Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; WOW64; Trident/6.0)',
'Opera/9.80 (Windows NT 6.0) Presto/2.12.388 Version/12.14',
'Mozilla/5.0 (iPad; CPU OS 6_0 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/6.0 Mobile/10A5355d Safari/8536.25',
'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1468.0 Safari/537.36',
'Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.0; Trident/5.0; TheWorld)',
'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2228.0 Safari/537.36',
'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2227.1 Safari/537.36',
'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:41.0) Gecko/20100101 Firefox/41.0',
'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.112 Safari/537.36'
]
user_agent = random.choice(user_agents)
ua = {'User-Agent': user_agent}
return ua
if __name__ == '__main__':
example()
驗證碼擒滑,使用opencv進行預(yù)先處理,再通過Tesseract-OCR識別虏等,當(dāng)然如果針對特定的驗證碼進行人工訓(xùn)練,效果更好丧蘸。驗證碼部分請參考爬蟲:8.驗證碼識別部分乾蛤。
一個IP的訪問頻次或者總的次數(shù)蝗敢,需要大量的代理IP。
后面會用go實現(xiàn)一個動態(tài)IP声搁,對外開放一個IP黑竞,此IP將請求轉(zhuǎn)發(fā)到后臺的代理IP去執(zhí)行請求。cookie有效時間經(jīng)常針對賬號和IP疏旨,常用的解決辦法是建立賬號對應(yīng)的cookie池很魂,并自動更新,隨機使用cookie檐涝,一旦無效就進行更新或者排除遏匆,排除是因為某些情況一個賬號一天只允許特定次數(shù)的請求。
有的網(wǎng)站將部分?jǐn)?shù)據(jù)以圖片格式存儲骤铃,那么我們又需要應(yīng)用OCR技術(shù)拉岁。
提供OCR接口的公司很多,微軟的牛津計劃中就有很方便的OCR接口惰爬,而且每個月的免費次數(shù)不少喊暖,一般情況夠用。
附牛津計劃地址:https://www.azure.cn/cognitive-services
歡迎補充撕瞧!