摘要:筆者編寫的搜索引擎爬蟲在爬取頁面時遇到了網頁被重定向的情況,所謂重定向就是通過各種方法本文提到的為種將各種網絡請求重新轉到其它位置。即網頁中的標簽聲明了網頁重定向的鏈接,這種重定向由瀏覽器完成,需要編寫代碼進行處理。
筆者編寫的搜索引擎爬蟲在爬取頁面時遇到了網頁被重定向的情況,所謂重定向(Redirect)就是通過各種方法
(本文提到的為3種)將各種網絡請求重新轉到其它位置(URL)。
每個網站主頁是網站資源的入口,當重定向發生在網站主頁時,如果不能正確處理就很有可能會錯失這整個網站的內容。
以下列出遇到的3種重定向情況(使用python2.7+requests編寫爬蟲):
在服務器端完成,一般來說爬蟲可以自適應,是不需要特別處理的,如響應代碼301(永久重定向)、302(暫時重定向)等。具體來說,可以通過requests請求得到的response對象中的url、status_code兩個屬性來判斷。當status_code為301、302或其他代表重定向的代碼時,表示原請求被重定向;當response對象的url屬性與發送請求時的鏈接不一致時,也說明了原請求被重定向且已經自動處理。
2.meta refresh即網頁中的標簽聲明了網頁重定向的鏈接,這種重定向由瀏覽器完成,需要編寫代碼進行處理。例如,某一重定向如下面的html代碼第三行中的注釋所示,瀏覽器能夠自動跳轉,但爬蟲只能得到跳轉前的頁面,不能自動跳轉。
解決辦法是通過得到跳轉前的頁面源碼,從中提取出重定向url信息(上述代碼第三行中的url屬性值)。
具體的操作:使用xpath("http://meta[@http-equiv="refresh" and @content]/@content")提取出content的值 或者使用正則表達式提取出重定向的url值。
通過JavaScript代碼形式進行重定向。如下面JavaScript代碼
對于這種方式的跳轉,由于可以實現該功能的JavaScript語句有多種形式,不能再使用正則表達式提取url,只能考慮加載JavaScript代碼來進行解決,例如使用selenium 無頭瀏覽器phantomJS 模擬瀏覽器操作
關于phantomJS的一些簡單操作語法可以在我這篇phantomJS中看下
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/42111.html
摘要:我們知道,在抖音中下載到的視頻是有水印的,這就催生出了很多抖音短視頻去水印的解析網站,小程序等。禁止重定向,設置運行結果,是一個標簽,便是重定向后的地址。 我們知道...
摘要:當我們試圖從新浪微博抓取數據時,我們會發現網頁上提示未登錄,無法查看其他用戶的信息。三模擬登錄下面將介紹使用獲取新浪微博,然后使用提交從而實現模擬登錄。 當我們試圖從新浪微博抓取數據時,我們會發現網頁上提示未登錄,無法查看其他用戶的信息。模擬登錄是定向爬蟲制作中一個必須克服的問題,只有這樣才能爬取到更多的內容。 showImg(https://segmentfault.com/img/...
摘要:上一篇文章網絡爬蟲實戰部署相關庫的安裝下一篇文章網絡爬蟲實戰網頁基礎在寫爬蟲之前,還是需要了解一些爬蟲的基礎知識,如原理網頁的基礎知識爬蟲的基本原理基本原理等。由萬維網協會和工作小組共同合作制定的規范,目前廣泛使用的是版本。 上一篇文章:Python3網絡爬蟲實戰---14、部署相關庫的安裝:Scrapyrt、Gerapy下一篇文章:Python3網絡爬蟲實戰---16、Web網頁基礎...
摘要:最近在研究區塊鏈,閑來無事抓取了拉勾網上條區塊鏈相關的招聘信息。拉勾網的反爬蟲做的還是比較好的,畢竟自己也知道這種做招聘信息聚合的網站很容易被爬,而且比起妹子圖這種網站,開發的技術水平應該高不少。 最近在研究區塊鏈,閑來無事抓取了拉勾網上450條區塊鏈相關的招聘信息。過程及結果如下。 拉勾網爬取 首先是從拉勾網爬取數據,用的requests庫。拉勾網的反爬蟲做的還是比較好的,畢竟自己也...
摘要:包括爬蟲編寫爬蟲避禁動態網頁數據抓取部署分布式爬蟲系統監測共六個內容,結合實際定向抓取騰訊新聞數據,通過測試檢驗系統性能。 1 項目介紹 本項目的主要內容是分布式網絡新聞抓取系統設計與實現。主要有以下幾個部分來介紹: (1)深入分析網絡新聞爬蟲的特點,設計了分布式網絡新聞抓取系統爬取策略、抓取字段、動態網頁抓取方法、分布式結構、系統監測和數據存儲六個關鍵功能。 (2)結合程序代碼分解說...
閱讀 1767·2021-10-11 10:57
閱讀 2351·2021-10-08 10:14
閱讀 3391·2019-08-29 17:26
閱讀 3339·2019-08-28 17:54
閱讀 3018·2019-08-26 13:38
閱讀 2884·2019-08-26 12:19
閱讀 3606·2019-08-23 18:05
閱讀 1275·2019-08-23 17:04