前言:
眼前朋友们对“python爬取分页数据”大约比较讲究,小伙伴们都想要剖析一些“python爬取分页数据”的相关文章。那么小编在网摘上汇集了一些对于“python爬取分页数据””的相关文章,希望同学们能喜欢,各位老铁们一起来了解一下吧!需求
爬取csdn最新文章并记录到数据库
H5地址:
分析
通过浏览器查看前3页的列表数据请求, 总结出url的动态规律
第1页:;category=newarticles&shown_offset=1537075945594796&first_view=true
第2页:;category=newarticles&shown_offset=1537075894000000&first_view=false
第3页:;category=newarticles&shown_offset=1537075870000000&first_view=false
动态的url如下:
{0}&category=newarticles&shown_offset={1}&first_view={2}
请求第1页时, type=new,first_view=true ; 往后翻页时,type=more, first_view=false, shown_offset取值于上一页请求的返回
类似这种前端分页, 为了防止用户翻页时, 数据库有新的记录生成造成前端重复显示, 分页参数的值一般都会由后端控制,后端会给前端返回一个‘时间戳’或‘数据Id’用于下一页请求,比如csdn的shown_offset,这种值一般取自上一页数据的最后一条记录.
开发/设计
语言/工具
python3,基于scrapy框架:
idea,安装python插件
mysql数据库
功能
列表数据分页爬取、解析
列表数据解析时可以继续爬取详情数据
数据记录到数据库,已存在的禁止重复爬取
输出日志文件
分环境部署dev,test,prod
源码
码云:
运行方式: scrapy runspider spider.py
部署
如果基于scrapy的爬虫做到了工程级别或者爬虫数量很多时,部署方案可考虑官方推荐的scrapyd
如果爬虫比较小,需要在linux下快速部署, 可以借助于crontab命令来定时运行爬虫, 如下:
# 每天9点~23点的第30分钟执行一次30 9-23 * * * /usr/local/python3.6.0/bin/scrapy runspider /usr/local/apps/csdn-newarticle-spider/spider.py >/dev/null 2>&1
测试数据结果:
对于内容详情/富文本的爬取, 一般存在主样式的丢失, 如果想正常使用, 需要二次编辑和定制.
标签: #python爬取分页数据