爬蟲應(yīng)該算是數(shù)據(jù)挖掘的第一步,也是分析數(shù)據(jù)的基礎(chǔ)渺氧,更是得出結(jié)論的基石旨涝。爬蟲大到一個團隊在維護,小到畢業(yè)論文侣背。Python應(yīng)該算是大家非常喜歡的爬蟲語言(理由不用多說都知道的)白华;而scrapy框架應(yīng)該算是爬蟲模塊、框架中的佼佼者贩耐,今天我們自定義settings.py文件。
那么我們自定義的就是這個settings.py文件的部分設(shè)置管搪,今天修改瀏覽器頭铡买。理由:
1更鲁、簡單防止反爬蟲(豆瓣....)
2、加快爬取速度
3奇钞、不用每次都是修改項目文件的settings.py
...........
對于settings.py文件下的很多含義參考官方文檔:scrapy中文文檔岁经、scrapy英文文檔
這里解釋幾個參數(shù):
ROBOTSTXT_OBEY = True-----------是否遵守robots.txt
CONCURRENT_REQUESTS = 16-----------開啟線程數(shù)量蛇券,默認(rèn)16
AUTOTHROTTLE_START_DELAY = 3-----------開始下載時限速并延遲時間
AUTOTHROTTLE_MAX_DELAY = 60-----------高并發(fā)請求時最大延遲時間
最底下的幾個:是否啟用在本地緩存,如果開啟會優(yōu)先讀取本地緩存纠亚,從而加快爬取速度塘慕,視情況而定
HTTPCACHE_ENABLED = True
HTTPCACHE_EXPIRATION_SECS = 0
HTTPCACHE_DIR = 'httpcache'
HTTPCACHE_IGNORE_HTTP_CODES = []
HTTPCACHE_STORAGE = 'scrapy.extensions.httpcache.FilesystemCacheStorage'
以上幾個可以視項目需要開啟,但是有兩個參數(shù)最好每次都開啟蒂胞,而每次都是項目文件手動開啟不免有些麻煩图呢,最好是項目創(chuàng)建后就自動開啟
#DEFAULT_REQUEST_HEADERS = {
# ? 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
# ? 'Accept-Language': 'en',
這個是瀏覽器請求頭骗随,很多網(wǎng)站都會檢查客戶端的headers,比如豆瓣就是每一個請求都檢查headers的user_agent指蚜,否則只會返回403涨椒,可以開啟
#USER_AGENT = 'Chirco (+http://www.yourdomain.com)'
這個是至關(guān)重要的摊鸡,大部分服務(wù)器在請求快了會首先檢查User_Agent,而scrapy默認(rèn)的瀏覽器頭是scrapy1.1 我們需要開啟并且修改成瀏覽器頭蚕冬,如:Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/22.0.1207.1 Safari/537.1
但是最好是這個USER-AGENT會隨機自動更換最好了。
首先我們可以收集幾個瀏覽器頭囤热,比如:
用隨機函數(shù)random自動更換頭旁蔼,找到scrapy根目錄下:X:\Python35\Lib\site-packages\scrapy\templates\project\module
每次執(zhí)行scrapy startproject name 都會在這個基模版下創(chuàng)建settings.py文件
執(zhí)行scrapy startproject name后看到settings.py生效了
現(xiàn)在我們來檢查一下我們剛剛的操作是否生效牌芋,這里簡單創(chuàng)建一個scrapy
執(zhí)行結(jié)果發(fā)現(xiàn)每次的瀏覽器頭都是不一樣的