基于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模块学习 filecmp 文件比较
Aug 27 Python
Python+OpenCV人脸检测原理及示例详解
Oct 19 Python
详解python分布式进程
Oct 08 Python
Python 实现遥感影像波段组合的示例代码
Aug 04 Python
Python3.6实现根据电影名称(支持电视剧名称),获取下载链接的方法
Aug 26 Python
命令行运行Python脚本时传入参数的三种方式详解
Oct 11 Python
Python多线程及其基本使用方法实例分析
Oct 29 Python
Django 自定义分页器的实现代码
Nov 24 Python
Python中文分词库jieba,pkusegwg性能准确度比较
Feb 11 Python
pytorch masked_fill报错的解决
Feb 18 Python
Pytest如何使用skip跳过执行测试
Aug 13 Python
Python使用pandas导入xlsx格式的excel文件内容操作代码
Dec 24 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 常用函数库和一些实用小技巧
2009/01/01 PHP
PHP 删除一个目录及目录下的所有文件的函数代码
2010/05/26 PHP
用 Composer构建自己的 PHP 框架之设计 MVC
2014/10/30 PHP
SAE实时日志接口SDK用法示例
2016/10/09 PHP
PHP正则删除HTML代码中宽高样式的方法
2017/06/12 PHP
js 距离某一时间点时间是多少实现代码
2013/10/14 Javascript
javascript 常见功能汇总
2015/06/11 Javascript
JavaScript正则表达式中的ignoreCase属性使用详解
2015/06/16 Javascript
在Node.js应用中使用Redis的方法简介
2015/06/24 Javascript
基于javascript制作微博发布栏效果
2016/04/04 Javascript
vue中渐进过渡效果实现
2016/10/27 Javascript
浅谈js数组和splice的用法
2016/12/04 Javascript
AngularJS中run方法的巧妙运用
2017/01/04 Javascript
jQuery表单元素选择器代码实例
2017/02/06 Javascript
Vue2组件tree实现无限级树形菜单
2017/03/29 Javascript
微信小程序五子棋游戏AI实现方法【附demo源码下载】
2019/02/20 Javascript
详解ng-alain动态表单SF表单项设置必填和正则校验
2019/06/11 Javascript
微信小程序 扭蛋抽奖机css3动画实现详解
2019/07/19 Javascript
Echarts在Taro微信小程序开发中的踩坑记录
2020/11/09 Javascript
python实现FTP服务器服务的方法
2017/04/11 Python
详解Python 4.0 预计推出的新功能
2019/07/26 Python
python multiprocessing模块用法及原理介绍
2019/08/20 Python
使用Python爬虫库requests发送请求、传递URL参数、定制headers
2020/01/25 Python
Django基于客户端下载文件实现方法
2020/04/21 Python
关于pycharm 切换 python3.9 报错 ‘HTMLParser‘ object has no attribute ‘unescape‘ 的问题
2020/11/24 Python
python 列表推导和生成器表达式的使用
2021/02/01 Python
兰蔻英国官网:Lancome英国
2019/04/30 全球购物
2014全国两会学习心得体会1000字
2014/03/10 职场文书
车辆工程专业求职信
2014/04/28 职场文书
我的老师教学反思
2014/05/01 职场文书
同志主要表现材料
2014/08/21 职场文书
怎样写离婚协议书
2015/01/26 职场文书
道歉的话怎么说
2015/05/12 职场文书
仓库管理制度范本
2015/08/04 职场文书
python基于tkinter制作下班倒计时工具
2021/04/28 Python
MySQL七种JOIN类型小结
2021/10/24 MySQL