基于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中文问题解决方法(总结了多位前人经验,初学者必看)
Mar 13 Python
python获取图片颜色信息的方法
Mar 18 Python
Python中的高级函数map/reduce使用实例
Apr 13 Python
Python中使用items()方法返回字典元素对的教程
May 21 Python
对Python进行数据分析_关于Package的安装问题
May 22 Python
Python多图片合并PDF的方法
Jan 03 Python
python print输出延时,让其立刻输出的方法
Jan 07 Python
python中时间转换datetime和pd.to_datetime详析
Aug 11 Python
python matplotlib实现将图例放在图外
Apr 17 Python
浅析Python 抽象工厂模式的优缺点
Jul 13 Python
Python 爬取淘宝商品信息栏目的实现
Feb 06 Python
有趣的二维码:使用MyQR和qrcode来制作二维码
May 10 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
Blitz templates 最快的PHP模板引擎
2010/04/06 PHP
PHP实现批量生成App各种尺寸Logo
2015/03/19 PHP
PHP与Web页面的交互示例详解二
2020/08/04 PHP
javascript StringBuilder类实现
2008/12/22 Javascript
js AspxButton的客户端操作
2009/06/26 Javascript
javascript 数组排序函数sort和reverse使用介绍
2013/11/21 Javascript
轻松创建nodejs服务器(8):非阻塞是如何实现的
2014/12/18 NodeJs
Jquery动态添加输入框的方法
2015/05/29 Javascript
js实现的倒计时按钮实例
2015/06/24 Javascript
Javascript中的return作用及javascript return关键字用法详解
2015/11/05 Javascript
javascript运动效果实例总结(放大缩小、滑动淡入、滚动)
2016/01/08 Javascript
ionic实现带字的toggle滑动组件
2016/08/27 Javascript
详解js正则表达式验证时间格式xxxx-xx-xx形式
2018/02/09 Javascript
在Vue中使用axios请求拦截的实现方法
2018/10/25 Javascript
vue 项目接口管理的实现
2019/01/17 Javascript
vue脚手架项目创建步骤详解
2021/03/02 Vue.js
python dict 字典 以及 赋值 引用的一些实例(详解)
2017/01/20 Python
Python 登录网站详解及实例
2017/04/11 Python
python字符串和常用数据结构知识总结
2019/05/21 Python
pyqt5 tablewidget 利用线程动态刷新数据的方法
2019/06/17 Python
python django model联合主键的例子
2019/08/06 Python
python爬取百度贴吧前1000页内容(requests库面向对象思想实现)
2019/08/10 Python
OpenCV里的imshow()和Matplotlib.pyplot的imshow()的实现
2019/11/25 Python
pyftplib中文乱码问题解决方案
2020/01/11 Python
使用python将微信image下.dat文件解密为.png的方法
2020/11/30 Python
Lancome兰蔻官方旗舰店:来自法国的世界知名美妆品牌
2018/06/14 全球购物
JRE、JDK、JVM之间的关系怎样
2012/05/16 面试题
挑战杯创业计划书的写作指南
2014/01/07 职场文书
运动会入场词60字
2014/02/15 职场文书
人力资源经理的岗位职责范本
2014/02/28 职场文书
农村党支部书记司法四风问题对照检查材料
2014/09/26 职场文书
物业前台接待岗位职责
2015/04/03 职场文书
2015年幼儿园保育工作总结
2015/05/12 职场文书
元宵节晚会主持词
2015/07/01 职场文书
教你怎么用Python selenium操作浏览器对象的基础API
2021/06/23 Python
pd.DataFrame中的几种索引变换的实现
2022/06/16 Python