文档章节

爬取csdn最新文章

零二一七
 零二一七
发布于 09/16 17:23
字数 501
阅读 16
收藏 0

需求

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

测试数据结果:           

 

© 著作权归作者所有

零二一七
粉丝 39
博文 63
码字总数 30826
作品 0
海淀
程序员
[python爬虫] Selenium爬取内容并存储至MySQL数据库

前面我通过一篇文章讲述了如何爬取CSDN的博客摘要等信息。通常,在使用Selenium爬虫爬取数据后,需要存储在TXT文本中,但是这是很难进行数据处理和数据分析的。这篇文章主要讲述通过Seleniu...

Eastmount
2017/03/13
0
0
[python] 常用正则表达式爬取网页信息及分析HTML标签总结

这篇文章主要是介绍Python爬取网页信息时,经常使用的正则表达式及方法。它是一篇总结性文章,实用性比较大,主要解决自己遇到的爬虫问题,也希望对你有所帮助~ 当然如果会Selenium基于自动化...

Eastmount
2016/04/07
0
0
[分享] 用NodeJs做一个小爬虫,附源码!

前言 利用爬虫可以做很多事情,单身汉子们可以用爬虫来收集各种妹子情报,撩妹族们可以用爬虫收集妹子想要的小东西,赚大钱的人可以用来分析微博言论与股票涨跌的关系诸如此类的,简直要上天...

没错就是酱紫
2016/08/03
756
0
[python爬虫] BeautifulSoup和Selenium对比爬取豆瓣Top250电影信息

这篇文章主要对比BeautifulSoup和Selenium爬取豆瓣Top250电影信息,两种方法从本质上都是一样的,都是通过分析网页的DOM树结构进行元素定位,再定向爬取具体的电影信息,通过代码的对比,你可...

Eastmount
2016/12/30
0
0
[增强可拓展性]Scrapy博客爬虫

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

3inchtime
06/07
0
0

没有更多内容

加载失败,请刷新页面

加载更多

web打印控件 LODOP的详细api

web打印控件 LODOP的详细api

wangxujun59
44分钟前
2
0
从一次小哥哥与小姐姐的转账开始, 浅谈分布式事务从理论到实践

分布式事务是个业界难题,在看分布式事务方案之前,先从单机数据库事务开始看起。 什么是事务 事务(Transaction)是数据库系统中一系列操作的一个逻辑单元,所有操作要么全部成功要么全部失...

中间件小哥
46分钟前
6
0
荣登Github日榜!微信最新开源MMKV

MMKV 开源当日即登Github Trending日榜,三日后荣登周榜。MMKV 在腾讯内部开源半年,得到公司内部团队的广泛应用和一致好评。 MMKV 是基于 mmap 内存映射的移动端通用 key-value 组件,底层序...

腾讯开源
55分钟前
3
0
前端取色工具:jcpicker

http://annystudio.com/software/colorpicker/#jcp-download

轻量级赤影
57分钟前
1
0
Swift - 将图片保存到相册

import Photos func loadImage(image:UIImage) { UIImageWriteToSavedPhotosAlbum(image, self, #selector(saveImage(image:didFinishSavingWithError:contextInfo:)), ni......

west_zll
今天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部