02 今日头条-采集和下载关键词“新垣结衣”的图集图片
Posted copywang
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了02 今日头条-采集和下载关键词“新垣结衣”的图集图片相关的知识,希望对你有一定的参考价值。
参考:
项目地址:
实现功能:
- 使用requests库爬取得到首页信息,返回的html代码中不包含需要的信息,都是些JS
- 在XHR中找到JSON请求和数据
- 使用request.get方法请求JSON数据,使用urlencode()生成完成的URL
- 在第3步中得到一个字符串,使用json.loads()方法生成字典形式的JSON变量,通过keys()方法获取需要的标题信息,定义成生成器,得到所有的
- 使用for循环调用第4步中的生成器,返回每个文章的url,传递给请求详情页的函数
- 如果请求到了详情页,那么解析详情页,需要从返回的HTML代码中获取字段信息,因此采用BeautifulSoup进行解析
- 用bs的select()方法获取title,并用get_text()取出第一个内容
- 使用正则表达式从解析后的页面中找到图片地址,返回的是一个字符串
- 第一次用json.load()返回的依然是1个字符串,需要嵌套多1层json.load()
- 在第9步返回的JSON变量中,使用get()方法提取所有图片的地址,返回一个list,再使用for循环,遍历返回的list,得到所有图片的下载地址,并下载,把结果保存到MongoDB
遇到的问题:
- 第9步的字符串也是反爬的手段之一,需要使用2次json.loads()
未解决问题:
无
收获
- 分析AJAX返回的网页
- 使用BeautifulSoup解析网页,并获取需要的信息
- 字符串转JSON常量
- 保存图片
以上是关于02 今日头条-采集和下载关键词“新垣结衣”的图集图片的主要内容,如果未能解决你的问题,请参考以下文章
爬取今日头条历史图集将信息保存到MongDB,并且下载图片到本地