参考:

静觅丨崔庆才的个人博客

项目地址:

copywang/spiders_collection

实现功能:

  1. 使用requests库爬取得到首页信息,返回的HTML代码中不包含需要的信息,都是些JS
  2. 在XHR中找到JSON请求和数据
  3. 使用request.get方法请求JSON数据,使用urlencode()生成完成的URL
  4. 在第3步中得到一个字符串,使用json.loads()方法生成字典形式的JSON变量,通过keys()方法获取需要的标题信息,定义成生成器,得到所有的
  5. 使用for循环调用第4步中的生成器,返回每个文章的url,传递给请求详情页的函数
  6. 如果请求到了详情页,那么解析详情页,需要从返回的HTML代码中获取字段信息,因此采用BeautifulSoup进行解析
  7. 用bs的select()方法获取title,并用get_text()取出第一个内容
  8. 使用正则表达式从解析后的页面中找到图片地址,返回的是一个字符串
  9. 第一次用json.load()返回的依然是1个字符串,需要嵌套多1层json.load()
  10. 在第9步返回的JSON变量中,使用get()方法提取所有图片的地址,返回一个list,再使用for循环,遍历返回的list,得到所有图片的下载地址,并下载,把结果保存到MongoDB

遇到的问题:

  1. 第9步的字符串也是反爬的手段之一,需要使用2次json.loads()

未解决问题:

收获

  1. 分析AJAX返回的网页
  2. 使用BeautifulSoup解析网页,并获取需要的信息
  3. 字符串转JSON常量
  4. 保存图片

【学习】02 今日头条爬虫-采集和下载关键词“新垣结衣”的图集图片相关推荐

  1. 今日头条新闻采集爬虫分享

    神箭手云爬虫如何采集今日头条新闻 -神箭手云爬虫 -一站式云端通用爬虫开发平台24小时不停机 多样化采集网页内容,快速产生大量而优质的内容,操作简单,无需专业知识. 1.打开神箭手云爬虫官网 2.创建 ...

  2. 今日头条 爬虫 java_Java爬虫实践:Jsoup+HttpUnit爬取今日头条、网易、搜狐、凤凰新闻...

    0x0 背景 最近学习爬虫,分析了几种主流的爬虫框架,决定使用最原始的两大框架进行练手: Jsoup&HttpUnit 其中jsoup可以获取静态页面,并解析页面标签,最主要的是,可以采用类似 ...

  3. 今日头条爬虫实战----爬取图片

    点击上方"蓝字"关注我们 今日头条爬虫实战 Mar 27, 2020 本期介绍通过在头条中搜索关键词后,分析ajax内容来爬取相关图片 本文约1.8k字,预计阅读10分钟. 有时候 ...

  4. 最新今日头条抢红包福袋脚本下载

    1.打开无障碍 2.输入卡密 3.点击开始运行 4.自动今日直播间开启抢包模式 ➡最新今日头条抢红包福袋脚本下载地址

  5. python爬今日头条组图_(python爬虫之)ajax解析爬取今日头条组图并下载

    首先吐槽一波csdn配色真直男,囧 此次任务需要注意的是: 用request.get方法的时候要加cookie, 网页源代码也改动了,详情页进入后不是一个json数据包,是一个html文档. 以及其它 ...

  6. 学习仿今日头条疫情地图+用户画像(echarts)

    Echarts Chartjs 最近由于公司图表展现需求较多,所以学习整理下相关资料. 前端图表框架也比较多,这里介绍两款. Apache Echarts Chartjs Apache Echarts ...

  7. 今日头条 爬虫 java_java实现简单的爬虫之今日头条

    前言 需要提前说下的是,由于今日头条的文章的特殊性,所以无法直接获取文章的地址,需要获取文章的id然后在拼接成url再访问.下面话不多说了,直接上代码. 示例代码如下 public class Dem ...

  8. PHP头条爬虫,今日头条爬虫分析-爬取用户发的所有内容

    今日头条的用户页数据爬取跟频道页的数据爬取大部分很类似,但稍微有一点不一样,就是用户主页的接口signature有点不一样,需要将当前爬取的用户id和分页时间戳一起作为入参传递进去才能获取到真正的si ...

  9. 今日头条 爬虫 java_爬虫实例:今日头条爬虫

    今日头条是一个js动态加载的网站,尝试了两种方式爬取,一是页面直接提取,一是通过接口提取: version1:直接页面提取 #coding=utf-8#今日头条 from lxml importetr ...

最新文章

  1. api网关揭秘--spring cloud gateway源码解析
  2. 去除C++中string前面和后面的空白符
  3. Kotlin基础-扩展
  4. UVA 10410——Tree Reconstruction
  5. Python 为什么要用线程池?
  6. 软件开发,维护与支持的困惑
  7. oracle 的逻辑结构设计,浅谈Oracle数据库逻辑结构
  8. 如何学习UG编程?零基础入门学UG难吗
  9. 鲁迅朱安:留给世纪的背影_拔剑-浆糊的传说_新浪博客
  10. 解析torrent种子信息
  11. mysql语句总结_mysql语句总结
  12. SAP 必须参照采购申请创建采购订单的配置方法
  13. 带你读论文系列之计算机视觉--GoogLeNet
  14. C++ 引用Lib和Dll的方法总结
  15. 黑龙江职业学院计算机考试,黑龙江2021年9月计算机等级考试考点安排 在哪考试...
  16. Linux调度系统全景指南(上篇)
  17. 非科班学python就业_非科班出身自学Python,这些实用方法学习方法你知道吗!
  18. 服务器cpu e3系列型号,Intel发布至强E3-1200 v3全系列型号
  19. 新媒体绩效考核系数计算公式_20种新的绩效最佳做法
  20. 自己动手写个微型 CSDN 吧,还能实现网页版 Blink,No.1

热门文章

  1. .py默认打开方式修改为cmd之后无法改回,始终默认打开方式灰显的解决方案(其他文件类型方法同)
  2. 2018年计算机专业对口升学,2018年届对口升学考试计算机专业月考三试题.doc
  3. java.text.dateformat_调用static java.text.DateFormat的方法不可取?
  4. Oracle中ROWID详解及应用
  5. python3删除sina微博
  6. utf-8写入csv乱码
  7. 保安培训内容大纲_初级保安培训视频
  8. Tableau数据分析类职位
  9. NetData 入门
  10. Python 时间比较