文档章节

python爬取csdn最新文章

零二一七
 零二一七
发布于 09/16 17:23
字数 502
阅读 26
收藏 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

测试数据结果:           

 

© 著作权归作者所有

零二一七
粉丝 41
博文 74
码字总数 36877
作品 0
海淀
程序员
私信 提问
Python爬虫小实践:爬取任意CSDN博客所有文章的文字内容(或可改写为保存其他的元素),间接增加博客访问量

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

天才小熊猫QAQ
2017/10/28
0
0
实战(一)之使用自带urllib和re正则表达式获取电影详情页链接

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

歪文
10/29
0
0
Python新书上市,强烈推荐!《Python网络数据爬取及分析从入门到精通(爬取篇)》导读

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

Eastmount
06/15
0
0
[增强可拓展性]Scrapy博客爬虫

前言 最近赶毕业论文也是心力憔悴,现在写一篇文章谈谈我的毕业设计。 在最初学习Python的时候,爬虫是个不错的练手项目,但是几乎所有的爬虫教程都是教我们如何如何爬一个网站。 比如我写的...

3inchtime
06/07
0
0
Python 起薪和均资都高于 Java?!

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

CSDN资讯
09/14
0
0

没有更多内容

加载失败,请刷新页面

加载更多

什么是自然语言处理技术

自然语言处理(NLP)是计算机科学,人工智能,语言学关注计算机和人类(自然)语言之间的相互作用的领域。自然语言处理是计算机科学领域与人工智能领域中的一个重要方向。它研究能实现人与计...

本宫没空2
25分钟前
2
0
移动端关闭虚拟键盘

那么document.activeElement.blur()为什么可以阻止虚拟键盘弹出呢?原因是:当你点击input的时候,document.activeElement获得了DOM中被聚焦的元素,也就是你点击的input,而调用.blur()方法...

niuhongxia
25分钟前
3
0
Ubuntu18.04安装RabbitMQ(正确安装)

1、安装erlang 由于rabbitMq需要erlang语言的支持,在安装rabbitMq之前需要安装erlang sudo apt-get install erlang-nox 2、安装Rabbitmq 更新源 sudo apt-get update 安装 sudo apt-get ins...

hansonwong
34分钟前
2
0
如何在以太坊开发发行自己的ERC-20数字货币

今天我将向你展示如何在以太坊区块链上开发你自己的加密货币并将其出售!我将向你展示如何使用以太坊智能合约逐步创建自己的ERC-20代币和众筹销售,如何测试智能合约,如何将智能合约部署到以...

geek12345
35分钟前
3
0
Vlock用于有多个用户访问控制台的共享 Linux 系统

当你在共享的系统上工作时,你可能不希望其他用户偷窥你的控制台中看你在做什么。如果是这样,我知道有个简单的技巧来锁定自己的会话,同时仍然允许其他用户在其他虚拟控制台上使用该系统。 ...

linuxprobe16
36分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部