爬虫爬到含空格的url的处理办法
来源:互联网 发布:免费数据库 编辑:程序博客网 时间:2024/05/15 06:41
道友问我的一个问题,之前确实没遇见过,在此记录一下。
问题描述
在某网站主页提取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编码,以免出现这种错误。
0 0
- 爬虫爬到含空格的url的处理办法
- url有空格的处理访求
- 关于Windows cmd下目录带空格的处理办法
- 关于Windows cmd下目录带空格的处理办法
- 关于Windows cmd下目录带空格的处理办法
- URI encode与URL encode对空格的不同处理
- url参数中有+、空格、=、%、&、#等特殊符号的处理
- URL参数中带有特殊字符+,空格,/,?,%,#,&,=的处理
- js中URL中带有空格参数的处理方法
- 关于url传参特殊字符的处理办法
- python爬虫中对含中文的url处理
- 怎样处理python爬虫中有中文的url
- getPath()返回路径包含的“%20”(空格)的处理办法
- LinuxTips-空格的处理
- 字符串空格的处理
- 指定URL的网络爬虫。。
- Scrapy爬虫局部Selector的选取办法
- 在传参时,url参数中包含+、空格、=、%、&、#等特殊符号的处理
- Nginx简单入门教学,包学包会,让你不再依赖伪大神!
- 【九度OJ】题目1467:二叉排序树 解题报告
- Java基础学习之队列和泛型
- Java关键字之static
- Android通过tcpdump抓包
- 爬虫爬到含空格的url的处理办法
- 博客实现浏览量统计次数
- json取值方法
- OpenCV的模块结构介绍
- POJ 3616 Milking Time
- Eclipse DFS Locations connect refused
- JAVA 中BIO,NIO,AIO的理解
- 操作jQuery集合
- (一)分布式存储综述