基于python 爬虫爬到含空格的url的处理方法


Posted in Python onMay 11, 2018

道友问我的一个问题,之前确实没遇见过,在此记录一下。

问题描述

在某网站主页提取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的处理方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python实现删除文件与目录的方法
Nov 10 Python
基于python的Tkinter编写登陆注册界面
Jun 30 Python
深入理解Python中的*重复运算符
Oct 28 Python
Android分包MultiDex策略详解
Oct 30 Python
python3+PyQt5自定义视图详解
Apr 24 Python
详解在Python中以绝对路径或者相对路径导入文件的方法
Aug 30 Python
如何基于Python批量下载音乐
Nov 11 Python
Python Selenium 设置元素等待的三种方式
Mar 18 Python
解决python调用自己文件函数/执行函数找不到包问题
Jun 01 Python
python生成xml时规定dtd实例方法
Sep 21 Python
Python批量修改xml的坐标值全部转为整数的实例代码
Nov 26 Python
python 操作excel表格的方法
Dec 05 Python
解决Python 爬虫URL中存在中文或特殊符号无法请求的问题
May 11 #Python
解决Python网页爬虫之中文乱码问题
May 11 #Python
解决python爬虫中有中文的url问题
May 11 #Python
利用Python yagmail三行代码实现发送邮件
May 11 #Python
解决Pandas to_json()中文乱码,转化为json数组的问题
May 10 #Python
解决python3 json数据包含中文的读写问题
May 10 #Python
Python3.6通过自带的urllib通过get或post方法请求url的实例
May 10 #Python
You might like
PHP5/ZendEngine2的改进
2006/10/09 PHP
PHP 数组和字符串互相转换实现方法
2013/03/26 PHP
程序员的表白神器“520”大声喊出来
2016/05/20 PHP
laravel实现分页样式替换示例代码(增加首、尾页)
2017/09/22 PHP
js Map List 遍历使用示例
2013/07/10 Javascript
js同比例缩放图片的小例子
2013/10/30 Javascript
javascript通过className来获取元素的简单示例代码
2014/01/10 Javascript
js实现文本框中焦点在最后位置
2014/03/04 Javascript
node.js中的fs.rename方法使用说明
2014/12/16 Javascript
jquery处理页面弹出层查询数据等待操作实例
2015/03/25 Javascript
Javascript编写俄罗斯方块思路及实例
2015/07/07 Javascript
javascript中不易分清的slice,splice和split三个函数
2016/03/29 Javascript
javascript高级选择器querySelector和querySelectorAll全面解析
2016/04/07 Javascript
使用vue打包时vendor文件过大或者是app.js文件很大的问题
2018/06/29 Javascript
使用mixins实现elementUI表单全局验证的解决方法
2019/04/02 Javascript
详解JS实现简单的时分秒倒计时代码
2019/04/25 Javascript
Vue数据绑定实例写法
2019/08/06 Javascript
js获取本日、本周、本月的时间代码
2020/02/01 Javascript
解决Vue的项目使用Element ui 走马灯无法实现的问题
2020/08/03 Javascript
jquery+ajax实现异步上传文件显示进度条
2020/08/17 jQuery
解决vux 中popup 组件Mask 遮罩在最上层的问题
2020/11/03 Javascript
Python入门篇之面向对象
2014/10/20 Python
python制作最美应用的爬虫
2015/10/28 Python
Python的Django框架中forms表单类的使用方法详解
2016/06/21 Python
TensorFlow搭建神经网络最佳实践
2018/03/09 Python
解决pycharm无法识别本地site-packages的问题
2018/10/13 Python
Python实现删除排序数组中重复项的两种方法示例
2019/01/31 Python
解决python线程卡死的问题
2019/02/18 Python
python实现模拟器爬取抖音评论数据的示例代码
2021/01/06 Python
德国婴儿推车和儿童安全座椅商店:BABYSHOP
2016/09/01 全球购物
国际奢侈品品牌童装购物网站:Designer Childrenswear
2019/05/08 全球购物
建设投标担保书
2014/05/13 职场文书
初中国旗下的演讲稿
2014/08/28 职场文书
科学发展观演讲稿
2014/09/11 职场文书
工资收入证明样本(5篇)
2014/09/16 职场文书
值班管理制度范本
2015/08/06 职场文书