基于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线程详解
Jun 24 Python
修复CentOS7升级Python到3.6版本后yum不能正确使用的解决方法
Jan 26 Python
python使用pycharm环境调用opencv库
Feb 11 Python
python中itertools模块zip_longest函数详解
Jun 12 Python
python实现音乐下载的统计
Jun 20 Python
python lambda表达式在sort函数中的使用详解
Aug 28 Python
Python3读取和写入excel表格数据的示例代码
Jun 09 Python
python爬取代理ip的示例
Dec 18 Python
python工具快速为音视频自动生成字幕(使用说明)
Jan 27 Python
Python3+Appium安装及Appium模拟微信登录方法详解
Feb 16 Python
OpenCV-Python实现油画效果的实例
Jun 08 Python
python中的sys模块和os模块
Mar 20 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
rrmdir php中递归删除目录及目录下的文件
2011/05/15 PHP
Trying to clone an uncloneable object of class Imagic的解决方法
2012/01/11 PHP
给PHP开发者的编程指南 第一部分降低复杂程度
2016/01/18 PHP
javascript中的对象创建 实例附注释
2011/02/08 Javascript
javascript中的startWith和endWith的几种实现方法
2013/05/07 Javascript
JavaScript 实现完美兼容多浏览器的复制功能代码
2015/04/28 Javascript
使用Meteor配合Node.js编写实时聊天应用的范例
2015/06/23 Javascript
jQuery实现提示密码强度的代码
2015/07/15 Javascript
jQuery实现气球弹出框式的侧边导航菜单效果
2015/09/22 Javascript
jQuery插件之jQuery.Form.js用法实例分析(附demo示例源码)
2016/01/04 Javascript
Node.js的npm包管理器基础使用教程
2016/05/26 Javascript
用JS中split方法实现彩色文字背景效果实例
2016/08/24 Javascript
Web打印解决方案之证件套打的实现思路
2016/08/29 Javascript
JavaScript中常用的验证reg
2016/10/13 Javascript
微信小程序 Canvas增强组件实例详解及源码分享
2017/01/04 Javascript
JavaScript实现水平进度条拖拽效果
2017/01/18 Javascript
关于Vue在ie10下空白页的debug小结
2018/05/02 Javascript
快速解决vue-cli在ie9+中无效的问题
2018/09/04 Javascript
在vue项目中引入高德地图及其UI组件的方法
2018/09/04 Javascript
Vue+elementui 实现复杂表头和动态增加列的二维表格功能
2019/09/23 Javascript
在vue中实现禁止屏幕滚动,禁止屏幕滑动
2020/07/22 Javascript
python基础教程之常用运算符
2014/08/29 Python
python flask中静态文件的管理方法
2018/03/20 Python
Python2和Python3之间的str处理方式导致乱码的讲解
2019/01/03 Python
Python实现的矩阵转置与矩阵相乘运算示例
2019/03/26 Python
Django REST Framework序列化外键获取外键的值方法
2019/07/26 Python
REISS英国官网:伦敦High Street最受欢迎品牌
2016/12/21 全球购物
SQL Server里面什么样的视图才能创建索引
2015/04/17 面试题
电子商务个人自荐信
2013/12/12 职场文书
回门宴答谢词
2014/01/13 职场文书
感恩节活动方案
2014/01/27 职场文书
团日活动总结报告
2014/06/25 职场文书
安全施工责任书
2014/08/25 职场文书
2014教师教育实践活动对照检查材料思想汇报
2014/09/21 职场文书
入伍通知书
2015/04/23 职场文书
重阳节简报
2015/07/20 职场文书