基于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用fork来创建子进程注意事项
Jul 03 Python
Python同时向控制台和文件输出日志logging的方法
May 26 Python
Python连接数据库学习之DB-API详解
Feb 07 Python
利用pandas进行大文件计数处理的方法
Jul 25 Python
Python正则表达式和re库知识点总结
Feb 11 Python
Python爬虫:将headers请求头字符串转为字典的方法
Aug 21 Python
python中property属性的介绍及其应用详解
Aug 29 Python
Python 类,property属性(简化属性的操作),@property,property()用法示例
Oct 12 Python
python+OpenCV实现图像拼接
Mar 05 Python
解决Python中报错TypeError: must be str, not bytes问题
Apr 07 Python
解决pytorch 交叉熵损失输出为负数的问题
Jul 07 Python
python3将变量输入的简单实例
Aug 19 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/07/12 PHP
基于mysql的bbs设计(四)
2006/10/09 PHP
对Session和Cookie的区分与解释
2007/03/16 PHP
ThinkPHP验证码使用简明教程
2014/03/05 PHP
ThinkPHP CURD方法之where方法详解
2014/06/18 PHP
php中使用session防止用户非法登录后台的方法
2015/01/27 PHP
php函数实现判断是否移动端访问
2015/03/03 PHP
postfixadmin忘记密码后的修改密码方法详解
2016/07/20 PHP
redirect_uri参数错误的解决方法(必看)
2017/02/16 PHP
Linux基于php-fpm模式的lamp搭建phpmyadmin的方法
2018/10/25 PHP
laravel中数据显示方法(默认值和下拉option默认选中)
2019/10/11 PHP
关于Javascript 的 prototype问题。
2007/01/03 Javascript
JavaScript入门教程(9) Document文档对象
2009/01/31 Javascript
Javascript 强制类型转换函数
2009/05/17 Javascript
EXT中xtype的含义分析
2010/01/07 Javascript
Javascript 面向对象 重载
2010/05/13 Javascript
javascript中声明函数的方法及调用函数的返回值
2014/07/22 Javascript
JavaScript针对网页节点的增删改查用法实例
2015/02/02 Javascript
JavaScript中数组的合并以及排序实现示例
2015/10/24 Javascript
jQuery each函数源码分析
2016/05/25 Javascript
webpack打包单页面如何引用的js
2017/06/07 Javascript
vue前后分离调起微信支付
2019/07/29 Javascript
javascript实现简单搜索功能
2020/03/26 Javascript
Python脚本实现Web漏洞扫描工具
2016/10/25 Python
Python之多线程爬虫抓取网页图片的示例代码
2018/01/10 Python
《Python学习手册》学习总结
2018/01/17 Python
详解Django之auth模块(用户认证)
2018/04/17 Python
python将print输出的信息保留到日志文件中
2019/09/27 Python
基于TensorFlow常量、序列以及随机值生成实例
2020/01/04 Python
书香校园建设方案
2014/05/02 职场文书
党的群众路线教育实践活动查摆问题自查报告
2014/10/10 职场文书
护士辞职信怎么写
2015/02/27 职场文书
人代会简报
2015/07/21 职场文书
解决Maven项目中 Invalid bound statement 无效的绑定问题
2021/06/15 Java/Android
eclipse创建项目没有dynamic web的解决方法
2021/06/24 Java/Android
Redis高并发防止秒杀超卖实战源码解决方案
2021/11/01 Redis