内容简介:1.效果图2.传送门点击传送门3.发工具之后,往下滑时会出现一个接口(当然滑的越多接口越多)
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'<a.*?>|</a>|<img.*?/>', '', 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
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- Docker 在雪球的技术实践
- 使用容器的正确方式,Docker在雪球的技术实践
- 防止网页被其他网页iframe嵌套的思考与实现
- 响应式网页设计–css设置网页字体大小自适应
- R网页采集:解决网页分页与网址超链接问题
- 网页制作用什么软件?制作网页的常用软件工具分享
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Pattern Recognition and Machine Learning
Christopher Bishop / Springer / 2007-10-1 / USD 94.95
The dramatic growth in practical applications for machine learning over the last ten years has been accompanied by many important developments in the underlying algorithms and techniques. For example,......一起来看看 《Pattern Recognition and Machine Learning》 这本书的介绍吧!