欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

如何解決python爬蟲爬網(wǎng)頁時遇到網(wǎng)頁重定向的問題-創(chuàng)新互聯(lián)

這篇文章將為大家詳細講解有關如何解決python爬蟲爬網(wǎng)頁時遇到網(wǎng)頁重定向的問題,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

荊州網(wǎng)站建設公司創(chuàng)新互聯(lián),荊州網(wǎng)站設計制作,有大型網(wǎng)站制作公司豐富經(jīng)驗。已為荊州上千家提供企業(yè)網(wǎng)站建設服務。企業(yè)網(wǎng)站搭建\成都外貿(mào)網(wǎng)站建設要多少錢,請找那個售后服務好的荊州做網(wǎng)站的公司定做!

搜索引擎爬蟲在爬取頁面時會遇到網(wǎng)頁被重定向的情況,所謂重定向(Redirect)就是通過各種方法(本文提到的為3種)將各種網(wǎng)絡請求重新轉到其它位置(URL)。每個網(wǎng)站主頁是網(wǎng)站資源的入口,當重定向發(fā)生在網(wǎng)站主頁時,如果不能正確處理就很有可能會錯失這整個網(wǎng)站的內(nèi)容。

1、服務器端重定向,在服務器端完成,一般來說爬蟲可以自適應,是不需要特別處理的,如響應代碼301(永久重定向)、302(暫時重定向)等。具體來說,可以通過requests請求得到的response對象中的url、status_code兩個屬性來判斷。當status_code為301、302或其他代表重定向的代碼時,表示原請求被重定向;當response對象的url屬性與發(fā)送請求時的鏈接不一致時,也說明了原請求被重定向且已經(jīng)自動處理。

#請求重定向
#方法一
response.setStatus(302);
response.setHeader("location", "/day06/index.jsp");
        
#方法二
response.sendRedirect("/day06/index.jsp");

scrapy shell 獲取重定向頁面

scrapy shell -s ROBOTSTXT_OBEY=False --no-redirect " 
fetch(response.headers['Location'])

2、meta refresh,即網(wǎng)頁中的<meta>標簽聲明了網(wǎng)頁重定向的鏈接,這種重定向由瀏覽器完成,需要編寫代碼進行處理。例如,某一重定向如下面的html代碼第三行中的注釋所示,瀏覽器能夠自動跳轉,但爬蟲只能得到跳轉前的頁面,不能自動跳轉。

<html>
<head>  
  <meta http-equiv="refresh" content="0.1;url=http://www.redirectedtoxxx.com/"><!--本網(wǎng)頁會在0.1秒內(nèi)refresh為url所指的網(wǎng)頁-->
</head>
</html>

解決辦法是通過得到跳轉前的頁面源碼,從中提取出重定向url信息(上述代碼第三行中的url屬性值)。一個具體的操作:

①使用xpath('//meta[@http-equiv="refresh" and @content]/@content')提取出content的值

②使用正則表達式提取出重定向的url值。

3、js 重定向,通過JavaScript代碼形式進行重定向。如下面JavaScript代碼

<script language=javascript>window.location.href='http://www.redirectedtoxxx.com'</script>

網(wǎng)頁包含內(nèi)容這種情況是最容易解決的,一般來講基本上是靜態(tài)網(wǎng)頁已經(jīng)寫死的內(nèi)容,或者動態(tài)網(wǎng)頁,采用模板渲染,瀏覽器獲取到HTML的時候已經(jīng)是包含所有的關鍵信息,所以直接在網(wǎng)頁上看到的內(nèi)容都可以通過特定的HTML標簽得到javascript代碼加載內(nèi)容,這種情況是由于雖然網(wǎng)頁顯示時,內(nèi)容在HTML標簽里面,但是其實是由于執(zhí)行js代碼加到標簽里面的,所以這個時候內(nèi)容在js代碼里面的,而js的執(zhí)行是在瀏覽器端的操作,所以用程序去請求網(wǎng)頁地址的時候,得到的response是網(wǎng)頁代碼和js的代碼,所以自己在瀏覽器端能看到內(nèi)容,解析時由于js未執(zhí)行,肯定找到指定HTML標簽下內(nèi)容肯定為空,這個時候的處理辦法,一般來講主要是要找到包含內(nèi)容的js代碼串,然后通過正則表達式獲得相應的內(nèi)容,而不是解析HTML標簽。

關于如何解決python爬蟲爬網(wǎng)頁時遇到網(wǎng)頁重定向的問題就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

另外有需要云服務器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。

網(wǎng)站題目:如何解決python爬蟲爬網(wǎng)頁時遇到網(wǎng)頁重定向的問題-創(chuàng)新互聯(lián)
本文來源:http://chinadenli.net/article40/dsiseo.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供網(wǎng)頁設計公司、網(wǎng)站收錄、響應式網(wǎng)站、服務器托管、動態(tài)網(wǎng)站、自適應網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

商城網(wǎng)站建設