基于python 爬蟲爬到含空格的url的處理方法
道友問我的一個(gè)問題,之前確實(shí)沒遇見過,在此記錄一下。
問題描述
在某網(wǎng)站主頁(yè)提取url進(jìn)行迭代,爬蟲請(qǐng)求主頁(yè)時(shí)沒有問題,返回正常,但是在訪問在主頁(yè)提取到的url時(shí)出現(xiàn)了400狀態(tài)碼(400 Bad Request)。
結(jié)論
先貼出結(jié)論來,如果url里有空格的話,要把空格替換成%20,也就是url編碼,否則就會(huì)出現(xiàn)400。
解決過程
首先百度了一下400狀態(tài)碼什么意思:
400頁(yè)面是當(dāng)用戶在打開網(wǎng)頁(yè)時(shí),返回給用戶界面帶有400提示符的頁(yè)面。其含義是你訪問的頁(yè)面域名不存在或者請(qǐng)求錯(cuò)誤。
主要有兩種形式:
1、bad request意思是“錯(cuò)誤的請(qǐng)求”;
2、invalid hostname意思是”不存在的域名”。
所以說問題應(yīng)該是出在了url上,我懷疑是他的url提取邏輯有問題,于是讓他把url打印一下看看,他說看不出什么問題。
然后我就把他代碼要了過來,自己調(diào)調(diào)試試,發(fā)現(xiàn)前幾個(gè)子url是訪問正常的,但是其中一個(gè)出現(xiàn)了400,那個(gè)url如下:
http://www.qichacha.com/company_getinfos?unique=4d5ad1bc15ddc4ad9873e5b0ff4f93d3&companyname=意大利C.D.VIDEO S.P.A.深圳代表處&tab=base
下面是一個(gè)訪問正常的url:
http://www.qichacha.com/company_getinfos?unique=f6aa78d2e9f4b0bc98103785f96c1353&companyname=深圳市聯(lián)得自動(dòng)化裝備股份有限公司&tab=base
我首先把這個(gè)url復(fù)制到瀏覽器,發(fā)現(xiàn)可以正常訪問,然后就留神了一下瀏覽器上url的變化,發(fā)現(xiàn)空格變成了%20,在代碼里把url中的空格都替換成%20后,
程序訪問也正常了。
問題解決。
啟示
以后做爬蟲,對(duì)于不可預(yù)測(cè)的不規(guī)律的請(qǐng)求,在發(fā)請(qǐng)求之前先把url進(jìn)行url編碼,以免出現(xiàn)這種錯(cuò)誤。
這篇基于python 爬蟲爬到含空格的url的處理方法就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
django框架cookie和session用法實(shí)例詳解
這篇文章主要介紹了django框架cookie和session用法,結(jié)合實(shí)例形式詳細(xì)分析了Django框架cookie和session的功能、原理、使用方法及相關(guān)操作注意事項(xiàng),需要的朋友可以參考下2019-12-12Python使用conda如何安裝requirement.txt的擴(kuò)展包
這篇文章主要介紹了Python使用conda如何安裝requirement.txt的擴(kuò)展包問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-02-02使用tensorflow 實(shí)現(xiàn)反向傳播求導(dǎo)
這篇文章主要介紹了使用tensorflow 實(shí)現(xiàn)反向傳播求導(dǎo),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-05-05Pandas.DataFrame轉(zhuǎn)置的實(shí)現(xiàn)
這篇文章主要介紹了Pandas.DataFrame轉(zhuǎn)置的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-03-03Python中json格式數(shù)據(jù)的編碼與解碼方法詳解
這篇文章主要介紹了Python中json格式數(shù)據(jù)的編碼與解碼方法,詳細(xì)分析了Python針對(duì)json格式數(shù)據(jù)的編碼轉(zhuǎn)換操作技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2016-07-07Python從列表推導(dǎo)到zip()函數(shù)的5種技巧總結(jié)
在本篇文章里小編給大家整理的是關(guān)于Python從列表推導(dǎo)到zip()函數(shù)的5種技巧的相關(guān)知識(shí)點(diǎn)和代碼,需要的朋友們參考學(xué)習(xí)下。2019-10-10python調(diào)用chrome實(shí)現(xiàn)網(wǎng)頁(yè)自動(dòng)操作過程
這篇文章主要介紹了python調(diào)用chrome實(shí)現(xiàn)網(wǎng)頁(yè)自動(dòng)操作,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2023-11-11獨(dú)立進(jìn)程使用django模型及django.setup()使用
這篇文章主要介紹了獨(dú)立進(jìn)程使用django模型(django.setup()使用),它提供了一種簡(jiǎn)單且高效的方式來利用Django強(qiáng)大的功能,并使你的代碼更易于維護(hù)和擴(kuò)展,需要的朋友可以參考下2023-07-07