基于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 urllib、urllib2、httplib抓取网页代码实例
May 09 Python
python实现的DES加密算法和3DES加密算法实例
Jun 03 Python
Python连接DB2数据库
Aug 27 Python
Python3安装Scrapy的方法步骤
Nov 23 Python
Python 使用 prettytable 库打印表格美化输出功能
Dec 26 Python
tensorflow入门:TFRecordDataset变长数据的batch读取详解
Jan 20 Python
Python面向对象中类(class)的简单理解与用法分析
Feb 21 Python
Python中实现输入一个整数的案例
May 03 Python
解决更改AUTH_USER_MODEL后出现的问题
May 14 Python
浅谈cv2.imread()和keras.preprocessing中的image.load_img()区别
Jun 12 Python
记录模型训练时loss值的变化情况
Jun 16 Python
在 Windows 下搭建高效的 django 开发环境的详细教程
Jul 27 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
js几个不错的函数 $$()
2006/10/09 Javascript
js 事件处理函数间的Event物件是否全等
2011/04/08 Javascript
了解了这些才能开始发挥jQuery的威力
2013/10/10 Javascript
js onclick事件传参讲解
2013/11/06 Javascript
利用js实现前台动态添加文本框,后台获取文本框内容(示例代码)
2013/11/25 Javascript
jQuery选择器源码解读(五):tokenize的解析过程
2015/03/31 Javascript
JS实现点击按钮后框架内载入不同网页的方法
2015/05/05 Javascript
javascript中sort() 方法使用详解
2015/08/30 Javascript
javascript判断网页是关闭还是刷新
2015/09/12 Javascript
Bootstrap 最常用的JS插件系列总结(图片轮播、标签切换等)
2016/07/14 Javascript
深入理解JavaScript中的尾调用(Tail Call)
2017/02/07 Javascript
浅谈vuepress 踩坑记
2018/04/18 Javascript
Koa2微信公众号开发之消息管理
2018/05/16 Javascript
vue-router中的hash和history两种模式的区别
2018/07/17 Javascript
Node.js net模块功能及事件监听用法分析
2019/01/05 Javascript
在nuxt中使用路由重定向的实例
2020/11/06 Javascript
[00:35]TI7不朽珍藏III——寒冰飞龙不朽展示
2017/07/15 DOTA
在Python中使用Neo4j数据库的教程
2015/04/16 Python
Python实现的Google IP 可用性检测脚本
2015/04/23 Python
Python pymongo模块用法示例
2018/03/31 Python
Pycharm以root权限运行脚本的方法
2019/01/19 Python
Python中使用遍历在列表中添加字典遇到的坑
2019/02/27 Python
Python使用socketServer包搭建简易服务器过程详解
2020/06/12 Python
Python 多进程、多线程效率对比
2020/11/19 Python
10个很棒的 CSS3 开发工具 推荐
2011/05/16 HTML / CSS
css3中background新增的4个新的相关属性用法介绍
2013/09/26 HTML / CSS
html5的自定义data-*属性与jquery的data()方法的使用
2014/07/02 HTML / CSS
奥地利汽车配件店:Pkwteile.at
2017/03/10 全球购物
bareMinerals官网:矿物质化妆品和护肤品
2018/02/04 全球购物
远东集团网络工程师面试题
2014/10/20 面试题
酒店人事专员岗位职责
2013/12/19 职场文书
空中乘务员岗位职责
2014/03/08 职场文书
网络技术专业求职信
2014/05/02 职场文书
担保书范本
2015/01/20 职场文书
放牛班的春天观后感
2015/06/01 职场文书
浅谈MySQL 亿级数据分页的优化
2021/06/15 MySQL