python爬取csdn最新文章

需求

     爬取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

测试数据结果:           

 

转载于:https://my.oschina.net/wangxu3655/blog/2052057

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值