基于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 相关文章推荐
如何处理Python3.4 使用pymssql 乱码问题
Jan 08 Python
Python实现定时备份mysql数据库并把备份数据库邮件发送
Mar 08 Python
pyqt5实现按钮添加背景图片以及背景图片的切换方法
Jun 13 Python
python连接PostgreSQL数据库的过程详解
Sep 18 Python
Win10 安装PyCharm2019.1.1(图文教程)
Sep 29 Python
Python 异常处理Ⅳ过程图解
Oct 18 Python
利用pandas将非数值数据转换成数值的方式
Dec 18 Python
Python Des加密解密如何实现软件注册码机器码
Jan 08 Python
PyQt5中QTableWidget如何弹出菜单的示例代码
Feb 23 Python
python实现简单贪吃蛇游戏
Sep 29 Python
Python用Jira库来操作Jira
Dec 28 Python
python 基于pygame实现俄罗斯方块
Mar 02 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 应用程序的安全 -- 不能违反的四条安全规则
2006/11/26 PHP
PHP 配置open_basedir 让各虚拟站点独立运行
2009/11/12 PHP
PHP通过微信跳转的Code参数获取用户的openid(关键代码)
2016/07/06 PHP
php单元测试phpunit入门实例教程
2017/11/17 PHP
Laravel框架执行原生SQL语句及使用paginate分页的方法
2018/08/17 PHP
jquery下json数组的操作实现代码
2010/08/09 Javascript
jQuery拖动图片删除示例
2013/05/10 Javascript
简单漂亮的js弹窗可自由拖拽且兼容大部分浏览器
2013/10/22 Javascript
Javascript简单实现可拖动的div
2013/10/22 Javascript
NodeJS的url截取模块url-extract的使用实例
2013/11/18 NodeJs
jQuery插件扩展操作入门示例
2017/01/16 Javascript
jQuery插件HighCharts实现的2D堆条状图效果示例【附demo源码下载】
2017/03/14 Javascript
JavaScript实现获取用户单击body中所有A标签内容的方法
2017/06/05 Javascript
AngularJs分页插件使用详解
2018/06/30 Javascript
微信小程序顶部导航栏滑动tab效果
2019/01/28 Javascript
JavaScript编写开发动态时钟
2020/07/29 Javascript
下载糗事百科的内容_python版
2008/12/07 Python
Python实现遍历数据库并获取key的值
2015/05/17 Python
Python 查看文件的编码格式方法
2017/12/21 Python
对Python中的条件判断、循环以及循环的终止方法详解
2019/02/08 Python
Python实现时间序列可视化的方法
2019/08/06 Python
基于Python解密仿射密码
2019/10/21 Python
python正则表达式匹配IP代码实例
2019/12/28 Python
解决Python spyder显示不全df列和行的问题
2020/04/20 Python
pyspark对Mysql数据库进行读写的实现
2020/12/30 Python
Qoo10台湾站:亚洲领先的在线市场
2018/05/15 全球购物
WiFi云数码相框:Nixplay
2018/07/05 全球购物
来自圣地亚哥的实惠太阳镜:Knockaround
2018/08/27 全球购物
Notino法国:购买香水和化妆品
2019/04/15 全球购物
酒店员工检讨书
2014/02/18 职场文书
学生安全责任书
2014/04/15 职场文书
村干部四风问题整改措施
2014/09/30 职场文书
乡镇一岗双责责任书
2015/01/29 职场文书
学习焦裕禄观后感
2015/06/09 职场文书
六种css3实现的边框过渡效果
2021/04/22 HTML / CSS
Opencv实现二维直方图的计算及绘制
2021/07/21 Python