Python爬虫入门教程 17-100 CSDN博客抓取数据

简介: 1.写在前面写了一段时间的博客了,忽然间忘记了,其实博客频道的博客也是可以抓取的 其实这事情挺简单的,打开CSDN博客首页,他不是有个最新文章么,这个里面都是最新发布的文章。打开F12抓取一下数据API,很容易就获取到了他的接口提取链接长成这个样子https://blog.

1.写在前面

写了一段时间的博客了,忽然间忘记了,其实博客频道的博客也是可以抓取的


70

其实这事情挺简单的,打开CSDN博客首页,他不是有个最新文章么,这个里面都是最新发布的文章。

image

打开F12抓取一下数据API,很容易就获取到了他的接口

image

提取链接长成这个样子

https://blog.csdn.net/api/articles?type=more&category=newarticles&shown_offset=1540381234000000

发现博客最新文章是一个瀑布流页面,不断下拉,只有一个参数shown_offset 在变化,按照我多年的行医经验,这个参数是个时间戳,而且肯定是上一次数据最后一条的时间戳。

基于这个理论,看一下数据,咦,猜对了~

image

博客返回的数据看一下,是否对味

image

2.CSDN博客撸代码

这个步骤就非常简单了,就是通过requests去抓取这个链接就好了

import requests
import pymongo
import time

START_URL = "https://www.csdn.net/api/articles?type=more&category=newarticles&shown_offset={}"
HEADERS = {
    "Accept":"application/json",
    "Host":"www.csdn.net",
    "Referer":"https://www.csdn.net/nav/newarticles",
    "User-Agent":"你自己的浏览器配置",
    "X-Requested-With":"XMLHttpRequest"
}
def get_url(url):
    try:
        res = requests.get(url,
                           headers=HEADERS,
                           timeout=3)

        articles = res.json()
        if articles["status"]:
            need_data = articles["articles"]
            if need_data:
                collection.insert_many(need_data)  # 数据插入
                print("成功插入{}条数据".format(len(need_data)))
            last_shown_offset = articles["shown_offset"]  # 获取最后一条数据的时间戳
            if last_shown_offset:
                time.sleep(1)
                get_url(START_URL.format(last_shown_offset))
    except Exception as e:
        print(e)
        print("系统暂停60s,当前出问题的是{}".format(url))

        time.sleep(60) # 出问题之后,停止60s,继续抓取
        get_url(url)

数据获取到了,当然要象征性的保存一下,mongo数据库的操作在上一篇文章,你可以去翻翻。

image

image

相关文章
|
16天前
|
数据采集 存储 JSON
Python网络爬虫:Scrapy框架的实战应用与技巧分享
【10月更文挑战第27天】本文介绍了Python网络爬虫Scrapy框架的实战应用与技巧。首先讲解了如何创建Scrapy项目、定义爬虫、处理JSON响应、设置User-Agent和代理,以及存储爬取的数据。通过具体示例,帮助读者掌握Scrapy的核心功能和使用方法,提升数据采集效率。
60 6
|
25天前
|
数据采集 API 数据处理
Objective-C 音频爬虫:实时接收数据的 didReceiveData: 方法
Objective-C 音频爬虫:实时接收数据的 didReceiveData: 方法
|
25天前
|
数据安全/隐私保护 Python
python之自动化进入CSDN
python之自动化进入CSDN
22 0
|
25天前
|
数据采集 JSON 数据处理
抓取和分析JSON数据:使用Python构建数据处理管道
在大数据时代,电商网站如亚马逊、京东等成为数据采集的重要来源。本文介绍如何使用Python结合代理IP、多线程等技术,高效、隐秘地抓取并处理电商网站的JSON数据。通过爬虫代理服务,模拟真实用户行为,提升抓取效率和稳定性。示例代码展示了如何抓取亚马逊商品信息并进行解析。
抓取和分析JSON数据:使用Python构建数据处理管道
|
10天前
|
图形学 Python
SciPy 空间数据2
凸包(Convex Hull)是计算几何中的概念,指包含给定点集的所有凸集的交集。可以通过 `ConvexHull()` 方法创建凸包。示例代码展示了如何使用 `scipy` 库和 `matplotlib` 绘制给定点集的凸包。
19 1
|
11天前
|
JSON 数据格式 索引
Python中序列化/反序列化JSON格式的数据
【11月更文挑战第4天】本文介绍了 Python 中使用 `json` 模块进行序列化和反序列化的操作。序列化是指将 Python 对象(如字典、列表)转换为 JSON 字符串,主要使用 `json.dumps` 方法。示例包括基本的字典和列表序列化,以及自定义类的序列化。反序列化则是将 JSON 字符串转换回 Python 对象,使用 `json.loads` 方法。文中还提供了具体的代码示例,展示了如何处理不同类型的 Python 对象。
|
11天前
|
数据采集 Web App开发 iOS开发
如何使用 Python 语言的正则表达式进行网页数据的爬取?
使用 Python 进行网页数据爬取的步骤包括:1. 安装必要库(requests、re、bs4);2. 发送 HTTP 请求获取网页内容;3. 使用正则表达式提取数据;4. 数据清洗和处理;5. 循环遍历多个页面。通过这些步骤,可以高效地从网页中提取所需信息。
|
1月前
|
数据处理 Python
Python实用记录(十):获取excel数据并通过列表的形式保存为txt文档、xlsx文档、csv文档
这篇文章介绍了如何使用Python读取Excel文件中的数据,处理后将其保存为txt、xlsx和csv格式的文件。
46 3
Python实用记录(十):获取excel数据并通过列表的形式保存为txt文档、xlsx文档、csv文档
|
1月前
|
计算机视觉 Python
Python实用记录(九):将不同的图绘制在一起、将不同txt文档中的数据绘制多条折线图
这篇文章介绍了如何使用Python的OpenCV库将多张图片合并为一张图片显示,以及如何使用matplotlib库从不同txt文档中读取数据并绘制多条折线图。
41 3
Python实用记录(九):将不同的图绘制在一起、将不同txt文档中的数据绘制多条折线图
|
14天前
|
数据采集 Web App开发 JavaScript
爬虫策略规避:Python爬虫的浏览器自动化
爬虫策略规避:Python爬虫的浏览器自动化