博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
post请求方式的翻页爬取内容及思考
阅读量:6278 次
发布时间:2019-06-22

本文共 1044 字,大约阅读时间需要 3 分钟。

1 #coding=utf-8 2  3 import urllib2 4 import urllib 5 import json 6  9 output = open('huizho.json', 'w') 11 for page in range(1,30): //爬取的页数,从1至29页12     request =urllib2.Request('http://www.hdgtjy.com/Index/PublicResults')13     request.add_header('X-Requested-With','XMLHttpRequest')14     request.add_header('Content-Type','application/x-www-form-urlencoded')15     values = 'page=%d&size=10'%page  或者values = 'page='+str(page)+'&size=10'  21     request.add_data(values)22     response = urllib2.urlopen(request)25     resHtml =response.read()27     line = json.dumps(resHtml,ensure_ascii=False) + '\n'  //因为爬取的内容含有中文,所以ensure_ascii不能为默认值True;28 29     output.write(line)30 output.close() 本段代码主要实现post请求方式的翻页功能,爬取的内容为某汽车网站的内容;编写代码遇到以下一个问题 1.当把12、13、14,行代码放到for循环上面,会发生当爬取的页数首位数发生改变时(这里因为网页原因只验证了个位数和两位数),爬取的内容出错(极大部分内容丢失,且爬取的不是目标内容)   ;原因:request.add_data(value)这句代码,会造成数据持续叠加;出现BUG  需要每次翻页时都请求服务器,才不会造成BUG出现。(此处理解不是很到位,不会说,望高手指正) 2.json.dumps()函数 ensure_ascii属性默认为True;当爬取的内容中含有中文时需要修改默认值。

转载于:https://www.cnblogs.com/yyx1-1/p/5626487.html

你可能感兴趣的文章
LAMP仍然是Web开发最流行的选择吗?
查看>>
IT专家的十大热门领域
查看>>
编译原理--语法推导树
查看>>
BI笔记之---BI通用流程zz
查看>>
幂等性 个人理解及应用
查看>>
java 输入
查看>>
大文件排序
查看>>
Android TabHost的使用
查看>>
使用loadrunner进行服务器性能测试(winsocket)
查看>>
C Programming Notes
查看>>
使用OLE DB数据提供程序访问MSSQL数据库
查看>>
概要设计怎么写?
查看>>
CodeIgniter时区设置
查看>>
UIViewController与UIView的关系
查看>>
ASP.NET Web开发框架之五 设计时支持,代码生成,数据字典 ExtAspNet控件扩展
查看>>
Windows 8 学习笔记(二)——XML文件的操作
查看>>
Beetle在TCP通讯中使用二进制序列化对象传输
查看>>
Endless icon: 每天都更新的图标集
查看>>
ASP.NET配置文件Web.config 详细解释(转)
查看>>
【Linux使用技巧】crontab命令用法
查看>>