基于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切换hosts文件代码示例
Dec 31 Python
Python实现的石头剪子布代码分享
Aug 22 Python
Python Tkinter GUI编程入门介绍
Mar 10 Python
举例讲解Python中的死锁、可重入锁和互斥锁
Nov 05 Python
Python爬取APP下载链接的实现方法
Sep 30 Python
python实现嵌套列表平铺的两种方法
Nov 08 Python
python实现给微信指定好友定时发送消息
Apr 29 Python
django 消息框架 message使用详解
Jul 22 Python
JupyterNotebook 输出窗口的显示效果调整方法
Apr 13 Python
在spyder IPython console中,运行代码加入参数的实例
Apr 20 Python
Python 如何批量更新已安装的库
May 26 Python
python -v 报错问题的解决方法
Sep 15 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
自己做矿石收音机
2021/03/02 无线电
php下的权限算法的实现
2007/04/28 PHP
PHP函数in_array()使用详解
2014/08/20 PHP
PHP工厂模式简单实现方法示例
2018/05/23 PHP
laravel 查询数据库获取结果实现判断是否为空
2019/10/24 PHP
类似GMAIL的Ajax信息反馈显示
2010/02/16 Javascript
Js获取事件对象代码
2010/08/05 Javascript
浏览器打开层自动缓慢展开收缩实例代码
2013/07/04 Javascript
window.open 以post方式传递参数示例代码
2014/02/27 Javascript
jQuery实现返回顶部功能适合不支持js的浏览器
2014/08/19 Javascript
常用DOM整理
2015/06/16 Javascript
浅谈toLowerCase和toLocaleLowerCase的区别
2016/08/15 Javascript
AngularJS 过滤与排序详解及实例代码
2016/09/14 Javascript
jQuery按需加载轮播图(web前端性能优化)
2017/02/17 Javascript
Node.js成为Web应用开发最佳选择的原因
2018/02/05 Javascript
在小程序/mpvue中使用flyio发起网络请求的方法
2018/09/13 Javascript
nodejs图片处理工具gm用法小结
2018/12/12 NodeJs
浅谈Vue.js 关于页面加载完成后执行一个方法的问题
2019/04/01 Javascript
小程序如何使用分包加载的实现方法
2019/05/22 Javascript
mpvue微信小程序的接口请求fly全局拦截代码实例
2019/11/13 Javascript
Hadoop中的Python框架的使用指南
2015/04/22 Python
基于wxpython开发的简单gui计算器实例
2015/05/30 Python
利用python画一颗心的方法示例
2017/01/31 Python
Python实现的微信公众号群发图片与文本消息功能实例详解
2017/06/30 Python
Python面向对象之类和对象实例详解
2018/12/10 Python
Django时区详解
2019/07/24 Python
Python 3 使用Pillow生成漂亮的分形树图片
2019/12/24 Python
python中round函数如何使用
2020/06/19 Python
Python ckeditor富文本编辑器代码实例解析
2020/06/22 Python
大学生心理活动总结
2014/07/04 职场文书
县委务虚会发言材料
2014/10/20 职场文书
实习班主任自我评价
2015/03/11 职场文书
公司安全管理制度范本
2015/08/05 职场文书
Python函数中的不定长参数相关知识总结
2021/06/24 Python
C3 线性化算法与 MRO之Python中的多继承
2021/10/05 Python
前端使用svg图片改色实现示例
2022/07/23 HTML / CSS