基于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 16 Python
python写xml文件的操作实例
Oct 05 Python
Python中对列表排序实例
Jan 04 Python
在Python中使用NLTK库实现对词干的提取的教程
Apr 08 Python
实例Python处理XML文件的方法
Aug 31 Python
简单谈谈python中的多进程
Nov 06 Python
python更改已存在excel文件的方法
May 03 Python
django 实现celery动态设置周期任务执行时间
Nov 19 Python
使用python实现数组、链表、队列、栈的方法
Dec 20 Python
PyTorch实现更新部分网络,其他不更新
Dec 31 Python
python随机生成大小写字母数字混合密码(仅20行代码)
Feb 01 Python
python 通过exifread读取照片信息
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
非洲第一个咖啡超凡杯大赛承办国—卢旺达的咖啡怎么样
2021/03/03 咖啡文化
PHP新手上路(十四)
2006/10/09 PHP
php模拟js函数unescape的函数代码
2012/10/20 PHP
php使用递归计算文件夹大小
2014/12/24 PHP
PHP的介绍以及优势详细分析
2019/09/05 PHP
JavaScript Date对象使用总结
2009/05/14 Javascript
JS跨域代码片段
2012/08/30 Javascript
详解Wondows下Node.js使用MongoDB的环境配置
2016/03/01 Javascript
js实现京东轮播图效果
2017/06/30 Javascript
js中变量的连续赋值(实例讲解)
2017/07/08 Javascript
javaScript实现复选框全选反选事件详解
2020/11/20 Javascript
使用Vue开发一个实时性时间转换指令
2018/01/17 Javascript
JS实现的3des+base64加密解密算法完整示例
2018/05/18 Javascript
JS数据类型判断的几种常用方法
2020/07/07 Javascript
超详细小程序定位地图模块全系列开发教学
2020/11/24 Javascript
Python信息抽取之乱码解决办法
2017/06/29 Python
python中reduce()函数的使用方法示例
2017/09/29 Python
Pycharm设置去除显示的波浪线方法
2018/10/28 Python
pygame游戏之旅 计算游戏中躲过的障碍数量
2018/11/20 Python
Python二进制文件读取并转换为浮点数详解
2019/06/25 Python
python中的colorlog库使用详解
2019/07/05 Python
Python Multiprocessing多进程 使用tqdm显示进度条的实现
2019/08/13 Python
python编写猜数字小游戏
2019/10/06 Python
美国猫狗药物和用品网站:PetCareRx
2017/01/05 全球购物
医生自荐信
2013/10/11 职场文书
班长岗位职责
2013/11/10 职场文书
毕业生自荐书模版
2014/01/04 职场文书
经贸韩语专业大学生职业规划
2014/02/14 职场文书
党员志愿者活动总结
2014/06/26 职场文书
整改报告怎么写
2014/11/06 职场文书
2015年幼儿教师个人工作总结
2015/05/20 职场文书
公文写作:新员工转正申请书范本3篇!
2019/08/07 职场文书
Pytorch 统计模型参数量的操作 param.numel()
2021/05/13 Python
MYSQL主从数据库同步备份配置的方法
2021/05/26 MySQL
java如何实现socket连接方法封装
2021/09/25 Java/Android
Python中re模块的元字符使用小结
2022/04/07 Python