基于python 爬虫爬到含空格的url的处理方法
作者:孔天逸 发布时间:2023-04-16 09:55:47
标签: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如下:
http://www.qichacha.com/company_getinfos?unique=4d5ad1bc15ddc4ad9873e5b0ff4f93d3&companyname=意大利C.D.VIDEO S.P.A.深圳代表处&tab=base
下面是一个访问正常的url:
http://www.qichacha.com/company_getinfos?unique=f6aa78d2e9f4b0bc98103785f96c1353&companyname=深圳市联得自动化装备股份有限公司&tab=base
我首先把这个url复制到浏览器,发现可以正常访问,然后就留神了一下浏览器上url的变化,发现空格变成了%20,在代码里把url中的空格都替换成%20后,
程序访问也正常了。
问题解决。
启示
以后做爬虫,对于不可预测的不规律的请求,在发请求之前先把url进行url编码,以免出现这种错误。
这篇基于python 爬虫爬到含空格的url的处理方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。
来源:https://blog.csdn.net/qq_30242609/article/details/62896170


猜你喜欢
- 共存问题我之前一直使用的是SQL2012版本的数据库管理工具,为了与时俱进,我也尝试更新一下版本,当然SQLServer管理工具是可以多版本
- 本文实例讲述了vue使用@scroll监听滚动事件时,@scroll无效问题的解决方法。分享给大家供大家参考,具体如下:在网上看了一下vue
- 一、Go语言实战——自定义集合Set在Go语言中有作为Hash Table实现的字典(Map)类型,但标准数据类型中并没有集合(Set)这种
- 1,reload 方法该方法强迫浏览器刷新当前页面。语法:location.reload([bForceGet])参数: bForceGet
- 比如下面一个listbinfo = ['lao','wang','python']我们通过h
- 1. 实例描述在平时编程的过程中,会经常在网上翻译一些单词,本文使用Python制作一款翻译小工具,不仅可以自己用,还可以嵌入到程序当中。运
- 前言之前我们分享过用Python进行可视化的9种常见方式。其实我们还能让可视化图形逼格更高一些,今天就分享一下如何让可视化秀起来:用Pyth
- 使用场景我有两个GPU卡。我希望我两个GPU能并行运行两个网络模型。代码错误代码1:#对于0号GPUos.environ['CUDA
- ktime 开始时间串 dtime 到期时间串 jmonth 付费间隔月份数 可选(1,3,6,12) 需要 按月查询数据 比如说 ktim
- 每个写asp程序人必会的知识!在ASP编程中使用数组数组的定义Dim MyArrayMyArray = Array(1,5,123,12,9
- //比较数组是否相同 modeler.compArray=function(array1,array2) { &nb
- 在想把CIFAR-10 的16进制数据转为图像的时候需要用到imsave(),但是在import scipy.misc 之后显示该库内没有i
- 话不多说了,先上一张Demo图,实现的功能有:左侧图例、右侧瀑布图、鼠标移入弹出当前坐标对应的数据信息(有优化的空间,大家自由发挥)。图例使
- 这个是捕获键盘事件输入状态的js代码,它可以判断你敲打了键盘的那个键,ctrl、shift,26个字母等等,返回具体键盘值。Javascri
- 前言在发生故障切换后,经常遇到的问题就是同步报错,数据库很小的时候,dump完再导入很简单就处理好了,但线上的数据库都150G-200G,如
- 在正文开始之前,先了解vue基于源码构建的两个版本,一个是 runtime only ,另一个是 runtime加compiler 的版本,
- PHP convert_cyr_string() 函数实例把字符串由一种字符集转换成另一种:<?php $str = "He
- 1、git merge冲突了,根据提示找到冲突的文件,解决冲突如果文件有冲突,那么会有类似的标记2、修改完之后,执行git add 冲突文件
- SQL查询输出,根据表内某字段为准,输出不重复记录,或删除掉重复的记录,保留所需要的记录。今儿见一朋友在蓝色里问起(查询不重复记录~),想想
- 本文实例讲述了python使用协程实现并发操作的方法。分享给大家供大家参考,具体如下:协程协程是一种用户态的轻量级线程,又称微线程。协程拥有