新手爬虫教程:Python爬取知乎文章中的图片

前言

知乎,与世界分享你刚编好的故事.......

今天咱们就爬取一下知乎文章上面的图片,突然发现知乎上面的小姐姐图片还是挺好看的

基本环境配置

版本:Python3

系统:Windows

相关模块:requests

储存:MongoDB

本人对于Python学习创建了一个小小的学习圈子,为各位提供了一个平台,大家一起来讨论学习Python。欢迎各位到来Python学习群:960410445一起讨论视频分享学习。Python是未来的发展方向,正在挑战我们的分析能力及对世界的认知方式,因此,我们与时俱进,迎接变化,并不断的成长,掌握Python核心技术,才是掌握真正的价值所在。 

关于pymongo的一些操作

导入pymongo,使用MongClient连接数据库,连接到myinfo数据库

insert,insert_one()只能插入一条数据,插入多条数据的格式是db.user.insert([{条数1},{条数2}]),一定要加[],否则只会添加进去第一条(user是一个集合,除了用db["collection"]外也可以用db.collection来对集合进行操作

update,$set:更新操作,multi=True:是否对查询到的全部数据进行操作,upsert=True:如果找不到查询的结果是否插入一条数据

db.user.update_one({"age":"2"},{"$set":{"name":"qian","age":2}})
db.user.update({"name":"sun"},{"$set":{"name":"qian"}},upsert=True)
复制代码

update_one也是只能对一条数据进行操作,$set是update操作的$操作符,也可以用$inc或$push,前两个操作速度差不多,$push操作速度较慢。

打印出查询结果

from bson import json_util as jsonb
print(jsonb.dumps(list(db.user.find({"name":"wu"}))))
print(db.user.find({"name":"wu"}))
可以看到上面两种方式,不转换与转换后的结果对比如下:
复制代码

*jsonb.dumps()将查询出来的结果转换成了可以读的list的格式,否则打印出来的是<pymongo.cursor.Cursor object at 0x02096DF0>这种格式的
遍历col1=db.user.find()查询到的所有结果,以及它key=name的value
for i in col1:
 print(i)
 print(i["name"])
复制代码

知乎文章图片选取操作库和爬取地址

爬取使用requests 存储使用 mongodb 就可以了

爬取地址经过分析之后,找到了一个可以返回json的数据接口

提取链接,方便我们程序模拟,连接进行了URL编码,去找个解码工具解析一下,编程下面的URL就比较好解释了,answers后面跟了一堆的参数,应该是返回的关键字,找到limit每页显示的数据量,offset偏移量,我们下拉滚动条,发现这个在不断的叠加+5,sort_by 就是排序。

做好上面的工作,接下来就是爬取了,我简化了一下爬取的地址,只保留了一些关键的信息

知乎文章图片代码

运行结果为


转载于:https://juejin.im/post/5c3ff17251882525616dcd71

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值