pythonurl编码空格_基于python爬⾍爬到含空格的url的处理⽅
道友问我的⼀个问题,之前确实没遇见过,在此记录⼀下。
问题描述
在某⽹站主页提取url进⾏迭代,爬⾍请求主页时没有问题,返回正常,但是在访问在主页提取到的url时出现了400状态码(400 Bad Request)。
结论
先贴出结论来,如果url⾥有空格的话,要把空格替换成%20,也就是url编码,否则就会出现400。
解决过程
⾸先百度了⼀下400状态码什么意思:
400页⾯是当⽤户在打开⽹页时,返回给⽤户界⾯带有400提⽰符的页⾯。其含义是你访问的页⾯域名不存在或者请求错误。
主要有两种形式:
1、bad request意思是“错误的请求”;
2、invalid hostname意思是”不存在的域名”。
所以说问题应该是出在了url上,我怀疑是他的url提取逻辑有问题,于是让他把url打印⼀下看看,他说看不出什么问题。
然后我就把他代码要了过来,⾃⼰调调试试,发现前⼏个⼦url是访问正常的,但是其中⼀个出现了400,那个url如下:
www.qichacha/company_getinfos?unique=4d5ad1bc15ddc4ad9873e5b0ff4f93d3&companyname=意⼤利
C.D.VIDEO S.P.A.深圳代表处&tab=base
下⾯是⼀个访问正常的url:
www.qichacha/company_getinfos?unique=f6aa78d2e9f4b0bc98103785f96c1353&compan
yname=深圳市联得⾃动化装备股份有限公司&tab=base
我⾸先把这个url复制到浏览器,发现可以正常访问,然后就留神了⼀下浏览器上url的变化,发现空格变成了%20,在代码⾥把url中的空格都替换成%20后,
程序访问也正常了。
问题解决。
启⽰
以后做爬⾍,对于不可预测的不规律的请求,在发请求之前先把url进⾏url编码,以免出现这种错误。
url编码处理这篇基于python 爬⾍爬到含空格的url的处理⽅法就是⼩编分享给⼤家的全部内容了,希望能给⼤家⼀个参考,也希望⼤家多多⽀持脚本之家。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。