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


    参考:

    静觅丨崔庆才的个人博客

    项目地址:

    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. 保存图片
  • 相关阅读:
    elasticsearch 基础
    docker 安装ElasticSearch的中文分词器IK
    Netty的编解码,粘包拆包,心跳检测机制
    Spring IOC 常用的注解
    @JsonView的使用
    lombok的使用以及其中的坑
    Zuul的高级使用
    SpringBoot 整合 ActiveMq
    转:Maven <resource>标签
    码农经常读错的单词
  • 原文地址:https://www.cnblogs.com/copywang/p/7894512.html
Copyright © 2020-2023  润新知