Python爬蟲之urllib模組2

2021-09-22 12:12:53 字數 1739 閱讀 3925

python爬蟲之urllib模組2

pg-55,

乙個待畢業待就業的二流大學生。

看了一下上一節的反饋,有些同學認為這個沒什麼意義,也有的同學覺得太簡單,關於

beautifulsoup

和lxml

獲取後面的鏈結我們能不能如法炮製呢,我們先來試試。我們把**寫成下面那樣

然後我們現在來試試

結果我們發現我們試圖獲取的三條鏈結都是一樣的,可以看出,這還是本頁的第一篇文章的鏈結。證明我們這種方法是不可行的。我們回想一下上一節課我們講的定位鏈結使用函式

就是這個find函式,我們看看幫助,我們發現了我們可以自定義開始尋找的下標和尋找結束的下標。我們從html裡面發現我們想要爬取的鏈結相隔都不是很遠,都處在同乙個div下面。於是我們來試試,從第一條鏈結後面開始尋找第二條鏈結。

這裡我們要注意後面兩條**,我們選擇了開始的下標是從上一條鏈結的尾部開始的。現在我們來試試是否可以獲取正確的鏈結。

現在我們獲取到了三條不同的鏈結,我們再通過對比html來看看我是否獲取的是正確的鏈結。

從結果來看,我們的**成功的獲取了本頁的前幾篇文章的鏈結。關於怎麼獲取剩下的鏈結我們應該有頭緒了。當然,這裡一頁只有10篇文章,也就是只有10個鏈結,我們可以把我們的獲取鏈結的**複製10次,可是如果一頁有20篇,30篇,50甚至是100篇呢,難道我們也要將**複製那麼多的次數,肯定不能,也不科學。很多同學現在已經知道要用迴圈來做了,但是這個要怎麼迴圈,從**迴圈呢?我們再來看看我們上面的**,我們發現除了第一條鏈結獲取的**不一樣,後面兩條鏈結獲取的**都是一樣的,這時我們就知道我們應該從第二條鏈結獲取**進行迴圈了。

這裡我們要先定義乙個列表對獲取的鏈結進行儲存,因為是10篇文章,所以這裡定義的就是乙個10個元素的空的字串列表。下面是我們迴圈的**塊。

然後再次對比html

我們現在刪掉他。

可以看出我們獲取的文章是正確的。因為篇幅有限,我就不乙個乙個去開啟截圖了,大家自己可以根據自己實際環境敲一下**。

類似的功能有很多值得改進的點,大家可以發表自己的觀點,進行討論。

python爬蟲之urllib 二

urllib.error可以接收urllib.request產生的異常,urllib.error有三個方法,如下 urlerror是oserror的乙個子類,httperror是urlerror的乙個子類,伺服器上http的響應會返回乙個狀態碼,根據這個http狀態碼,我們可以知道我們的訪問是否成功...

python爬蟲之urllib 四

每個 都會定義robots.txt 檔案,這個檔案可以告訴網路爬蟲爬取該 時存在哪些限制。作為良好網民以及其他人利益,一般上遵從這些限制。如何檢視這個檔案?可以通過在目標 站點或網域名稱後面加上 robots.txt 進行訪問。例如 目標 站點 的 robots.txt 檔案就是 robots.tx...

Python 爬蟲乾貨之urllib庫

小試牛刀 怎樣扒網頁呢?其實就是根據url來獲取它的網頁資訊,雖然我們在瀏覽器中看到的是一幅幅優美的畫面,但是其實是由瀏覽器解釋才呈現出來的,實質它是一段html 加 js css,如果把網頁比作乙個人,那麼html便是他的骨架,js便是他的肌肉,css便是它的衣服。所以最重要的部分是存在於html...