文档章节

python爬取csdn最新文章

老菜鸟0217
 老菜鸟0217
发布于 2018/09/16 17:23
字数 502
阅读 33
收藏 1

需求

     爬取csdn最新文章并记录到数据库

    

分析

    通过浏览器查看前3页的列表数据请求, 总结出url的动态规律

    第1页:https://www.csdn.net/api/articles?type=new&category=newarticles&shown_offset=1537075945594796&first_view=true

    第2页:https://www.csdn.net/api/articles?type=more&category=newarticles&shown_offset=1537075894000000&first_view=false

    第3页:https://www.csdn.net/api/articles?type=more&category=newarticles&shown_offset=1537075870000000&first_view=false

    则动态的url如下:

    https://www.csdn.net/api/articles?type={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

源码 

      码云: https://gitee.com/wangxu3655/csdn-newarticle-spider

       

运行方式: 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

测试数据结果:           

 

© 著作权归作者所有

老菜鸟0217
粉丝 43
博文 81
码字总数 39542
作品 0
海淀
程序员
私信 提问
实战(一)之使用自带urllib和re正则表达式获取电影详情页链接

一、关于urllib库 网上urllib库的教程文章非常多而且详细具体,我就不过多叙述和重复了,个人更加倾向于将精力放在实战上,而不是反反复复拷贝教程(其实是因为我懒),来几篇干货参考。 py...

歪文
2018/10/29
0
0
Python爬虫小实践:爬取任意CSDN博客所有文章的文字内容(或可改写为保存其他的元素),间接增加博客访问量

Python并不是我的主业,当初学Python主要是为了学爬虫,以为自己觉得能够从网上爬东西是一件非常神奇又是一件非常有用的事情,因为我们可以获取一些方面的数据或者其他的东西,反正各有用处。...

天才小熊猫QAQ
2017/10/28
0
0
Python 起薪和均资都高于 Java?!

作者 | Don Lex 责编 | 郭芮 本文爬取了某直聘网站上Python和Java的招聘信息,比较了两个方向的发展前(钱)途 ,为本科生的就业方向给一个小小的建议。 爬取 在招聘网站上直接以”本科生”和...

CSDN资讯
2018/09/14
0
0
Python新书上市,强烈推荐!《Python网络数据爬取及分析从入门到精通(爬取篇)》导读

版权声明:本文为博主原创文章,转载请注明CSDN博客源地址!共同学习,一起进步~ https://blog.csdn.net/Eastmount/article/details/80647813 Python新书上市,强烈推荐! 《Python网络数据爬...

Eastmount
2018/06/15
0
0
这届 Python 程序员,很行!

数据是创造和决策的原材料,高质量的数据都价值不菲。而利用爬虫,我们可以获取大量的价值数据,经分析可以发挥巨大的价值,比如: 爬虫是入门Python最好的方式,没有之一。Python有很多应用...

CSDN资讯
2018/11/20
0
0

没有更多内容

加载失败,请刷新页面

加载更多

vue 对对象的属性进行修改时,不能渲染页面 vue.$set()

我在vue里的方法里给一个对象添加某个属性时,我console.log出来的是已经更改的object ,但是页面始终没有变化 原因如下: **受现代 JavaScript 的限制 (而且 Object.observe 也已经被废弃),...

Js_Mei
今天
2
0
开始看《Java学习笔记》

虽然书买了很久,但一直没看。这其中也写过一些Java程序,但都是基于IDE的帮助和对C#的理解来写的,感觉不踏实。 林信良的书写得蛮好的,能够帮助打好基础,看得出作者是比较用心的。 第1章概...

max佩恩
昨天
12
0
Redux 三大原则

1.单一数据源 在传统的MVC架构中,我们可以根据需要创建无数个Model,而Model之间可以互相监听、触发事件甚至循环或嵌套触发事件,这些在Redux中都是不被允许的。 因为在Redux的思想里,一个...

wenxingjun
昨天
8
0
跟我学Spring Cloud(Finchley版)-12-微服务容错三板斧

至此,我们已实现服务发现、负载均衡,同时,使用Feign也实现了良好的远程调用——我们的代码是可读、可维护的。理论上,我们现在已经能构建一个不错的分布式应用了,但微服务之间是通过网络...

周立_ITMuch
昨天
5
0
XML

学习目标  能够说出XML的作用  能够编写XML文档声明  能够编写符合语法的XML  能够通过DTD约束编写XML文档  能够通过Schema约束编写XML文档  能够通过Dom4j解析XML文档 第1章 xm...

stars永恒
昨天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部