网页视频抓取工具 知乎( 知乎文章图片爬取器的一部分代码,针对知乎问题的答案)

优采云 发布时间: 2022-03-04 09:09

  网页视频抓取工具 知乎(

知乎文章图片爬取器的一部分代码,针对知乎问题的答案)

  Python爬虫教程:知乎文章图片爬虫

  1. 知乎文章Image Crawler II 博客背景

  昨天写了知乎文章图片爬虫的部分代码,获取了知乎问题答案的JSON。博客中出现了一些硬写的内容。今天我把那部分信息进行了调整,图片下载已经完善成代码了。

  编号:960410445

  群里有志同道合的朋友,互相帮助,

  群里有很好的视频学习教程和PDF!

  首先,你需要获取知乎的任何问题,你只需要输入问题的ID,就可以获得相关的页面信息,比如最重要的回答问题的总人数。

  问题 ID 是红色标记的数字,如下所示

  29024583

  编写代码,下面的代码用于检测用户输入的ID是否正确,并通过连接URL得到问题下的答案总数。

  import requestsimport reimport pymongoimport timeDATABASE_IP = '127.0.0.1'DATABASE_PORT = 27017DATABASE_NAME = 'sun'client = pymongo.MongoClient(DATABASE_IP,DATABASE_PORT)db = client.sundb.authenticate("dba", "dba")collection = db.zhihuone # 准备插入数据BASE_URL = "https://www.zhihu.com/question/{}"def get_totle_answers(article_id): headers = { "user-agent": "需要自己补全 Mozilla/5.0 (Windows NT 10.0; WOW64)" } with requests.Session() as s: with s.get(BASE_URL.format(article_id),headers=headers,timeout=3) as rep: html = rep.text pattern =re.compile( '') s = pattern.search(HTML) print("查找到 {} 条数据".format(s.groups()[0])) return s.groups()[0]if __name__ == '__main__': # 用死循环判断用户输入的是否是数字 article_id = "" while not article_id.isdigit(): article_id = input("请输入文章 ID:") totle = get_totle_answers(article_id) if int(totle)>0: zhi = ZhihuOne(article_id,totle) zhi.run() else: print("没有任何数据!")

  改进图片下载部分。图片下载地址是在审核过程中找到的。在 JSON 字段的内容中,我们使用一个简单的正则表达式来匹配它。详情如下图所示

  

  在此处插入图像描述

  写代码,请仔细阅读以下代码注释,中间有个小bug,需要手动将pic3改为pic2这个地方的原因目前还不清楚,可能是我本地网络的原因,请在项目根目录中创建第一个。imgs 文件夹,用于存放图片

<p>def download_img(self,data): ## 下载图片 for item in data["data"]: content = item["content"] pattern = re.compile('(.*?)') imgs = pattern.findall(content) if len(imgs)> 0: for img in imgs: match = re.search('

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线