Python3 大型網路爬蟲實戰 — 給 scrapy 爬蟲專案設定為防反爬

AoboSir發表於2016-12-06

原博文連結:http://www.aobosir.com/blog/2016/12/06/python3-large-web-crawler-scrapy-project-Anti-reptile-settings/


開發環境

  • Python第三方庫:lxml、Twisted、pywin32、scrapy
  • Python 版本:python-3.5.0-amd64
  • PyCharm軟體版本:pycharm-professional-2016.1.4
  • 電腦系統:Windows 10 64位

如果你還沒有搭建好開發環境,請到這篇部落格


所有的設定都是在scrapy爬蟲專案中的settings.py 檔案中進行設定。

Step 1 . 設定爬蟲不遵循 robots.txt協議

# Obey robots.txt rules
ROBOTSTXT_OBEY = False

Alt text

想要了解什麼是robots.txt協議,請訪問這篇部落格:解析 robots.txt 檔案

Step 2 . 設定取消Cookies

# Disable cookies (enabled by default)
COOKIES_ENABLED = False

Alt text

Cookies

簡單的說,Cookie就是伺服器暫存放在你計算機上的一筆資料,好讓伺服器用來辨認你的計算機。當你在瀏覽網站的時候,Web伺服器會先送一小小資料放在你的計算機上,Cookie 會幫你在網站上所打的文字或是一些選擇,都記錄下來。當下次你再光臨同一個網站,Web伺服器會先看看有沒有它上次留下的Cookie資料,有的話,就會依據Cookie裡的內容來判斷使用者,送出特定的網頁內容給你。

Step 3 . 設定使用者代理值(USER_AGENT

# Crawl responsibly by identifying yourself (and your website) on the user-agent
USER_AGENT = 'Mozilla/xxx (Windows xxx; Winxx; xxx) AppleWebKit/xxx (KHTML, like Gecko) Chrome/xxxx Safari/xxx'

Alt text

這個 使用者代理可以在瀏覽器裡面找到:

隨便瀏覽一個網頁,按F12 -> Network -> F5,隨便點選一項,你都能看到有 User-agent 這一項,將這裡面的內容拷貝就可以。

Alt text

Step 4 . 設定IP

對於這一步,如果你沒有做什麼違法的事情,可以不用設定。僅僅上面的三個步驟,就可以將那些具有反爬蟲機制的網站可以正常爬取了。


請訪問:http://www.aobosir.com/

相關文章