博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
大海啊,夏天啊,全是腿啊
阅读量:1999 次
发布时间:2019-04-28

本文共 1407 字,大约阅读时间需要 4 分钟。

知乎还是很友好的 总体来说没啥难度 简单说下思路

1.评论是动态加载的 直接找json接口

2.分析接口参数,我测试的时候一次最多能拿20条数据(不过我还是一条一条拿的)

3.循环发送请求,其实可以先把评论数抓下来再for range 我只是比较懒(。・ω・。)

4.有的评论没图片,简单try一下或者if处理

首先需要引入爬虫库

import requestsfrom bs4 import BeautifulSoupimport json

发送请求

#发送请求函数def getpage(header, cookie):    for i in range(1000,2000):        base_url = 'https://www.zhihu.com/api/v4/questions/29815334/answers?include=data%5B*%5D.is_normal%2Cadmin_closed' \                   '_comment%2Creward_info%2Cis_collapsed%2Cannotation_action%2Cannotation_detail%2Ccollapse_reason%2Cis' \                   '_sticky%2Ccollapsed_by%2Csuggest_edit%2Ccomment_count%2Ccan_comment%2Ccontent&offset=' + str(i) + '&limit=1&sort' \                 '_by=default'        response = requests.get(base_url, headers=header, cookies=cookie)        html = response.text        img_json = json.loads(html)        print('正在抓取知乎长腿小姐姐图片 第%s条评论'% i)        contentpage(img_json)

解析json数据

#解析json数据def contentpage(img_json):    try:        data = img_json["data"][0]        content = data["content"]        # print(content)        html = BeautifulSoup(content,'lxml')        # 提取img标签 由于会抓到两张一页的图片所以每隔一个提取一次        img_page = html.select('img')[::2]        for i in img_page:            address = i.get('src')            # print(address)            imgpage(address)    except:        print('此评论没有图片')

大家需要源码可以直接关注《志学Python》公众号,回复‘长腿妹子’,直接给你网盘地址,过期了可以直接后台回复,看到我会回复的

随便挑了几张给你们欣赏下!

转载地址:http://iobtf.baihongyu.com/

你可能感兴趣的文章
8张图带你深入理解Java
查看>>
经典的Java基础面试题集锦汇总
查看>>
Java新手问题集锦汇总
查看>>
Java程序员应该掌握哪些东西?
查看>>
Java实现配置加载机制
查看>>
最全面的Java多线程用法解析
查看>>
Java反射机制分析指南
查看>>
Java的最佳实践
查看>>
40个Java集合面试问题和答案
查看>>
Java开发必会的Linux命令
查看>>
Java编程提高性能时需注意的地方总结
查看>>
如何编写函数才能提高代码质量
查看>>
处理Java异常三原则(必备)
查看>>
10个经典的C语言小程序
查看>>
Java 中日期的几种常见操作 —— 取值、转换、加减、比较
查看>>
Java程序员应当知道的10个面向对象设计原则
查看>>
Linux 软件的常用安装方法
查看>>
40个Java多线程问题总结
查看>>
深入解析java应用程序的一般架构
查看>>
写出高质量代码的10个Tips
查看>>