每個**都會定義robots.txt 檔案,這個檔案可以告訴網路爬蟲爬取該**時存在哪些限制。作為良好網民以及其他人利益,一般上遵從這些限制。
如何檢視這個檔案?可以通過在目標**站點或網域名稱後面加上 robots.txt 進行訪問。 例如 目標**站點 的 robots.txt 檔案就是 /robots.txt。
下面即為這個檔案內容:
user-agent: *
disallow: /subject_search
disallow: /amazon_search
disallow: /search
disallow: /group/search
disallow: /event/search
disallow: /celebrities/search
disallow: /location/drama/search
disallow: /forum/
disallow: /new_subject
disallow: /service/iframe
disallow: /j/
disallow: /link2/
disallow: /recommend/
disallow: /trailer/
sitemap: /sitemap_index.xml
sitemap: /sitemap_updated_index.xml
# crawl-delay: 5
user-agent: wandoujia spider
disallow: /
關於這個 robots.txt 檔案內容:
2: 這被注釋掉的部分,如果沒有被注釋且指明了跳轉鏈結,那麼,表明每個使用者兩次爬蟲之間的時間間隔不能小於 5s 否則所訪問的**網頁會自動跳轉到指定的鏈結頁面。此時,相當於**伺服器禁封了 ip ,禁封時間依據各**的情況。
對於這個 robots.txt 檔案來說, wandoujia spider 的**使用者是禁止預覽該站點的。
可以使用python 自帶的 robotparser 模組測試一下:
import urllib.robotparser
rp = urllib.robotparser.robotfileparser()
rp.set_url('/robots.txt')
rp.read()
url = ''
user_agent = 'wandoujia spider'
wsp_info = rp.can_fetch(user_agent, url)
print("wandoujia spider **使用者訪問情況:",wsp_info)
user_agent = 'other spider'
osp_info = rp.can_fetch(user_agent, url)
print("other spider **使用者訪問情況:",osp_info)
輸出結果如下:
wandoujia spider **使用者訪問情況: false
other spider **使用者訪問情況: true
python爬蟲之urllib 二
urllib.error可以接收urllib.request產生的異常,urllib.error有三個方法,如下 urlerror是oserror的乙個子類,httperror是urlerror的乙個子類,伺服器上http的響應會返回乙個狀態碼,根據這個http狀態碼,我們可以知道我們的訪問是否成功...
Python爬蟲之urllib模組2
python爬蟲之urllib模組2 pg 55,乙個待畢業待就業的二流大學生。看了一下上一節的反饋,有些同學認為這個沒什麼意義,也有的同學覺得太簡單,關於 beautifulsoup 和lxml 獲取後面的鏈結我們能不能如法炮製呢,我們先來試試。我們把 寫成下面那樣 然後我們現在來試試 結果我們發...
Python 爬蟲乾貨之urllib庫
小試牛刀 怎樣扒網頁呢?其實就是根據url來獲取它的網頁資訊,雖然我們在瀏覽器中看到的是一幅幅優美的畫面,但是其實是由瀏覽器解釋才呈現出來的,實質它是一段html 加 js css,如果把網頁比作乙個人,那麼html便是他的骨架,js便是他的肌肉,css便是它的衣服。所以最重要的部分是存在於html...