1.效果图

在这里插入图片描述

2.传送门点击传送门

3.发工具之后,往下滑时会出现一个接口(当然滑的越多接口越多)

在这里插入图片描述

4.我们通过对比两个及以上的接口进行分析它们的不同之处(这叫找规律)

可以发现max_id是在变化的,其他都是不变的,而且count是返回的文章数目有15个,所以max_id只要自增15就可以实现翻页了,是不是很简单

在这里插入图片描述

5.我们可以这么写代码实现翻页(这代码只是举例子怎么写翻页,不代表最终的代码),这里我取max_id开始的地方是20333000(小伙伴们可以自己去找一下max_id的有效范围),如下

max_id = 20333000

while True:

# 请求的url

url = 'https://xueqiu.com/v4/statuses/public_timeline_by_category.json?since_id=-1&max_id={}&count=15&category=-1'.format(max_id)

# 返回来的数据是json格式

resp = requests.get(url, headers=headers).json()

max_id += 15

6.接下来分析一下返回来的数据,以便我们进行抓取,通过下图我们可以发现每一篇文章都是存储在列表这个键当中的,所以我们先取出list这个键

在这里插入图片描述

代码如下:

# 我们需要的数据存在一个列表之中,先取出这个列表

lists = resp.get('list')

7.再看每一篇文章的信息,将data的信息复制粘贴到json.cn这个网站去查看json的信息,可以发在data中取出我们需要的信息

在这里插入图片描述

for temp in lists:

# 数据在每一个元素中的data键中,取出data

data = temp.get('data')

# 取出来的data是一个str类型,我们需要将其转换成dict的类型方可操作

data = json.loads(data)

# 判断data是否存在

if data:

# 获取文章的题目

title = data.get('title')

# 如果没有题目,就continue,因为通过我的观察,没有title的一般是广告之类的

if not title:

continue

# 获取摘要

description = data.get('description')

# 数据清洗,使用正则表达式的sub方法

description = re.sub(r'||', '', description)

# 获取用户的信息,用户的信息在data里边的user键中

user_name = data.get('user').get('screen_name')

# 获取是什么类型的文章

column = temp.get('column')

# 获取发表的时间戳

created_at = data.get('created_at')

# 获取阅读人数

view_count = data.get('view_count')

# 声明一个字典存储数据

data_dict = {}

data_dict['title'] = title

data_dict['description'] = description

data_dict['user_name'] = user_name

data_dict['column'] = column

data_dict['created_at'] = created_at

data_dict['view_count'] = view_count

print(data_dict)

8.最后就是将数据保存到文件中,其中data_list是我在前面一开始就声明的了

# 将数据写入json文件

with open('data_json.json', 'a+', encoding='utf-8-sig') as f:

json.dump(data_list, f, ensure_ascii=False, indent=4)

print('json文件写入完成')

# 将数据写入csv文件

with open('data_csv.csv', 'w', encoding='utf-8-sig', newline='') as f:

# 表头

title = data_list[0].keys()

# 声明writer

writer = csv.DictWriter(f, title)

# 写入表头

writer.writeheader()

# 批量写入数据

writer.writerows(data_list)

print('csv文件写入完成')

9.完整代码

完整代码公众号回复'雪球网'关键字即可

公众号:pythonislover

记得要设置延迟噢,我们是一只文明的爬虫~~~ 忘了说了,cookie会过期,需要及时更新cookie

python爬取ajax_Python爬虫如-何爬取ajax网页之爬取雪球网文章相关推荐

  1. python 北上资金_python爬虫技术:北向资金数据自动爬取!

    好久不见!今天我们继续python的话题啦.python现在势头凶得很,没事刷抖音.刷朋友圈.看公众号,弹出的广告总少不了python."python带你发家致富,财富自由!"广告 ...

  2. python爬虫——如何爬取ajax网页之爬取雪球网文章

    效果图 传送门点击传送门 进入网站之后我们打开开发工具之后,往下滑时会出现一个接口(当然滑的越多接口越多) 我们通过对比两个及以上的接口进行分析它们的不同之处(这叫找规律) 可以发现max_id是在变 ...

  3. python微信公众号爬虫_微信公众号推送信息爬取---python爬虫

    问题描述 利用搜狗的微信搜索抓取指定公众号的最新一条推送,并保存相应的网页至本地. 注意点 搜狗微信获取的地址为临时链接,具有时效性. 公众号为动态网页(JavaScript渲染),使用request ...

  4. 【JavaWeb 爬虫】Java文本查重网页版 爬取百度搜索结果页全部链接内容

    ! ! 更新:增加了网页过滤判断,只允许域名包含blog,jianshu的网站通过 小技巧 Java中InputStream和String之间的转换方法 String result = new Buf ...

  5. Python爬虫实战02:分析Ajax请求并抓取今日头条街拍

    1 目标网站分析 首先我们打开今日头条网站,搜索 街拍,点击图集,这里每就是我们要爬取的目录,我们称为索引页.1 点开一个标题,进去,称为详情页.2这里面的图是我们所要爬取的.比如这里可以点击图片,共 ...

  6. 基于python的影评数据分析_基于Python聚焦型网络爬虫的影评获取技术

    龙源期刊网 http://www.qikan.com.cn 基于 Python 聚焦型网络爬虫的影评获取技 术 作者:郭向向 郑嘉慧 苗学芹 来源:<时代金融> 2019 年第 11 期 ...

  7. 李沐【实用机器学习】1.3网页数据抓取

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 一.数据抓取工具 二.实例解析 总结 前言 网页数据抓取目标:在一个网站里面感兴趣的数据抓取出来 数据特点:噪点较多, ...

  8. python中国大学排名爬虫写明详细步骤-Python爬虫——定向爬取“中国大学排名网”...

    内容整理自中国大学MOOC--北京理工大学-蒿天-Python网络爬虫与信息提取 相关实战章节 我们预爬取的url如下 网页节选 在浏览器中读取网页源代码 可以 发现表格数据信息是直接写入HTML页面 ...

  9. 在当当买了python怎么下载源代码-爬虫实战一:爬取当当网所有 Python 书籍

    图片来自 unsplash 我们已经学习 urllib.re.BeautifulSoup 这三个库的用法.但只是停留在理论层面上,还需实践来检验学习成果.因此,本文主要讲解如何利用我们刚才的几个库去实 ...

  10. 在当当买了python怎么下载源代码-爬虫实战:爬取当当网所有 Python 书籍

    来源:公众号-极客猴 出处: 本文主要讲解如何利用urllib.re.BeautifulSoup 这几个库去实战,爬取当当网所有 Python 书籍. 1 确定爬取目标 任何网站皆可爬取,就看你要不要 ...

最新文章

  1. 学好单片机能找什么工作?单片机好学吗?
  2. objective-c 面试题
  3. mysql-事务隔离级别
  4. kali linux安装搜狗输入法的方法
  5. adb shell 修改文件名_从零开始学Linux运维|27.Shell编程(函数与参数的传递)
  6. php代码执行相关函数,关于当前PHP脚本运行时系统信息相关函数
  7. 两个小程序大概的了解一下java的线程
  8. EntboostChat 0.9(越狱版)公布,iOS免费企业IM
  9. 6-2图像分类网络模型框架解读(下)
  10. centos samba 看不到共享目录_samba共享服务
  11. 这才是你寻寻觅觅想要的 Python 可视化神器!
  12. Backbone.js 1.0.0源码架构分析(一)
  13. --save-dev 与 --save的区别
  14. Mysql 给时间增加对应的时间
  15. 利用555定时器的双电源电路原理
  16. cv2高动态范围成像(HDRI、HDR)
  17. 启动服务器应用程序失败,打开系统管理时提示:autoupdateserviceset.exe 应用程序错误 应用程序无法正常启动,请单击确定 关闭应用程序。...
  18. 凤凰x86 卡android,卡ANDROIDx86_64的解决办法
  19. 微信小程序使用第三方插件
  20. 速卖通重点国家市场俄罗斯市场分析平台热销产品推荐

热门文章

  1. 百度编辑器嵌套秀米编辑器遇到的问题
  2. excel怎么启用宏_Excel基础知识,VBA代码编辑器,4种方法进入表格编程世界
  3. 2年前端 杭州 面试 集合 面经 前端
  4. 识别到硬盘 计算机不显示盘符,Win10系统下移动硬盘可以识别但是不显示盘符的解决方法...
  5. 路由器,交换机和猫的区别
  6. wangEditor上传不了图片
  7. 发光学类毕业论文文献包含哪些?
  8. matlab的fprintf写不进文件,fprintf写不进文件
  9. 服务器系统内存不能为written,LOL选了英雄之后出现 无法连接服务器, 0x007197ea指令引用的0x0000003c内存。该内存不能为written。高悬赏...
  10. roc曲线spss怎么做_统计第十三课:SPSS ROC曲线