python爬蟲之urllib 四

2021-08-28 10:06:39 字數 1701 閱讀 9359

每個**都會定義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...