基于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中映射类型的内建函数和工厂函数
Aug 19 Python
Using Django with GAE Python 后台抓取多个网站的页面全文
Feb 17 Python
浅谈Python用QQ邮箱发送邮件时授权码的问题
Jan 29 Python
Python基于xlrd模块操作Excel的方法示例
Jun 21 Python
一行代码让 Python 的运行速度提高100倍
Oct 08 Python
Python 面试中 8 个必考问题
Nov 16 Python
Linux下Pycharm、Anaconda环境配置及使用踩坑
Dec 19 Python
75条笑死人的知乎神回复,用60行代码就爬完了
May 06 Python
Python GUI编程学习笔记之tkinter事件绑定操作详解
Mar 30 Python
Python利用Xpath选择器爬取京东网商品信息
Jun 01 Python
Python是怎样处理json模块的
Jul 16 Python
python实现快速文件格式批量转换的方法
Oct 16 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
PHP_Flame(Version:Progress)的原代码
2006/10/09 PHP
substr()函数中文版
2006/10/09 PHP
PHP 多进程 解决难题
2009/06/22 PHP
PHP文件读写操作之文件写入代码
2011/01/13 PHP
PHP多态代码实例
2015/06/26 PHP
让你的网站可编辑的实现js代码
2009/10/19 Javascript
HTA版JSMin(省略修饰语若干)基于javascript语言编写
2009/12/24 Javascript
json数据的列循环示例
2013/09/06 Javascript
nodejs npm install全局安装和本地安装的区别
2014/06/05 NodeJs
在AngularJS中如何使用谷歌地图把当前位置显示出来
2016/01/25 Javascript
基于JavaScript实现文字超出部分隐藏
2016/02/29 Javascript
js 点击a标签 获取a的自定义属性方法
2016/11/21 Javascript
Bootstrap Table从零开始
2017/06/30 Javascript
详解Vue快速零配置的打包工具——parcel
2018/01/16 Javascript
Angular4.x通过路由守卫进行路由重定向实现根据条件跳转到相应的页面(推荐)
2018/05/10 Javascript
layui弹出层按钮提交iframe表单的方法
2018/08/20 Javascript
利用hasOwnProperty给数组去重的面试题分享
2018/11/05 Javascript
浅谈JavaScript_DOM学习篇_图片切换小案例
2019/03/19 Javascript
javascript中的数据类型检测方法详解
2019/08/07 Javascript
vue 导航内容设置选中状态样式的例子
2019/11/01 Javascript
Python中的os.path路径模块中的操作方法总结
2016/07/07 Python
浅谈python中的__init__、__new__和__call__方法
2017/07/18 Python
python利用dir函数查看类中所有成员函数示例代码
2017/09/08 Python
Python查找第n个子串的技巧分享
2018/06/27 Python
使用Python制作自动推送微信消息提醒的备忘录功能
2018/09/06 Python
Python 调用C++封装的进一步探索交流
2021/03/04 Python
CSS3中新增的对文本和字体的设置
2020/02/03 HTML / CSS
linux比较文件内容的命令是什么
2013/03/04 面试题
诚信考试承诺书
2014/03/27 职场文书
婚前协议书范本
2014/04/15 职场文书
教室布置标语
2014/06/26 职场文书
医疗专业毕业生求职信
2014/08/28 职场文书
小学教师2014年度工作总结
2014/12/03 职场文书
pytorch 一行代码查看网络参数总量的实现
2021/05/12 Python
关于使用Redisson订阅数问题
2022/01/18 Redis
Python使用BeautifulSoup4修改网页内容
2022/05/20 Python