我是跟着崔大神的视频进行学习的,这是他的一个案例,一步一步敲,代码肯定是没有问题的,肯定能学到一点东西,注释不想加了,下面自己一步一步完成的。(代码注释的部分,是为了测试,时常打印一下信息,看有没有问题)

流程框架:

  1. 爬取索引页内容:利用requests请求目标站点,得到索引网页HTML代码,返回结果
  2. 抓取详情页内容:解析返回结果,得到详情页的链接,并进一步抓取详情页的信息
  3. 下载图片并保存数据库
  4. 开启循环及多线程:对多网页内容遍历,开启多线程提高抓取速度

1、在网址www.toutiao.com,在搜索框输入“街拍”,打开开发者选项,发现返回的没有我们想要的数据,判断该网页是通过Ajax加载,JS渲染

2、点击XHR,点击第一个URL,看返回的json格式的数据,由于看的不方便,将它复制粘贴到json格式化阅读器中,可以看到title与头条里的title是一样的,说明数据是正确的

滚轮一直向下滑动,一次加载20个,发现offset在变化,count一直是20

3、点击第一个内容,进行跳转,在开发者选项里能不能找到图片的url,结果发现在Doc中的gallery中,有图片的地址。可以自己尝试,点击图片右键,查看图片的地址,进行对应。数了一下是11个图片的地址,不过这些需要正则匹配一下。

4、至此已经分析完页面,打开pycharm,创建一个项目,首先测试打印json返回的数据,发现能打印出来,一定要加headers,不然是打印不出东西来的。后面就需要我们进行解析

import requests
from urllib.parse import urlencode

def get_page_index(offset):
    headers = {
        'referer': 'https://www.toutiao.com/search/?keyword=%E8%A1%97%E6%8B%8D',
        'cookie': 'tt_webid=6741580036883301901; WEATHER_CITY=%E5%8C%97%E4%BA%AC; __tasessionId=uthwjgcvi1569646429442; tt_webid=6741580036883301901; csrftoken=22882f942604650099034bfe8636766a; s_v_web_id=3fa020c7425a1ebabcf947ef5b12327e',
        'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36',
        'x-requested-with': 'XMLHttpRequest'
    }
    params = {
        'aid': '24',
        'app_name': 'web_search',
        'offset': offset,
        'format': 'json',
        'keyword': '街拍',
        'autoload': 'true',
        'count': '20',
        'en_qc': '1',
        'cur_tab': '1',
        'from': 'search_tab',
        'pd': 'synthesis',
    }
    url = 'https://www.toutiao.com/api/search/content/?' + urlencode(params)
    print(url)
    try:
        response = requests.get(url, headers=headers)
        if response.status_code == 200:
            return response.text
    except requests.ConnectionError:
        return None

def main():
    html = get_page_index(0)
    print(html)

if __name__ == '__main__':
    main()

5、增加解析索引页的图片的url,将它们打印出来

6、再添加详情页的爬取以及解析,能看见真正需要的图片的url信息打印出来(这里需要注意详情页图片的url随时都是会变的,需要自己分析图片url的规律),到这里基本结束,需要的信息都解析出来呢,之后将这些数据存到MongoDB中

7、将数据存储到MongoDB中,用robo3T可视化工具查看下载出来的数据,可以看到这里只存储了图片的url,还需要将图片下载下来。

8、下载图片到本地

9、下一步,因为目前只是抓取第一个索引页,下拉索引页可以看到offset20递增,改变offset值就可以爬取街拍所有的索引页以及详情页的图片(这里有一点错误,不是按照顺序爬取,爬取一点出现错误,但是上面是对的,就是这里爬取所有索引页有一点问题)

源代码GitHub:https://github.com/15160200501/TouTiao

今日头条组图下载本地,并存入MongoDB相关推荐

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

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

  2. python爬今日头条组图_python 爬虫抓取今日头条街拍图片

    1. 打开google浏览器,输入www.toutiao.com, 搜索街拍.html 2.打开开发者选项,network监看加载的xhr, 数据是ajax异步加载的,能够看到preview里面的da ...

  3. 今日头条飞聊下载,重名软件较多可别下错哦

    一大早起来飞聊上线信息铺天盖地,但是仔细找了下似乎飞聊软件还没上线怎么回事呢?一篇由科技界36氪和界面新闻的新闻试着找了一下确实没发现飞聊的影子. 今日头条飞聊 今日头条下载地址:http://s.d ...

  4. 最新的今日头条美图爬取(这真是一篇很烂的博客)

    接下来我们就介绍一下对今日头条的爬取: 对AJAX的爬取我也不是太熟,但是我想了以下这应该是最新的了,我也在网上搜索到不少今日头条的爬去,但是跟新过后就很难找到能顺利爬取美图的博客了,所以我把我的发现 ...

  5. Python-爬取今日头条美图

    import requests from urllib.parse import urlencode import os from hashlib import md5 from multiproce ...

  6. 手动下载股票列表 存入mongodb 并更新名字

    #! /usr/bin/python2 # coding=utf-8 import os import csv import pymongoglobal stocks''' mongodb 删除数据库 ...

  7. Python爬虫实战——今日头条图片下载

    目前正在自学爬虫,在b站上看到网课都比较过时,页面情况早已改变,对于新手比较不友好,经过尝试成功爬取今日头条图片并下载. 首先是在今日头条下进行搜索:https://www.toutiao.com/s ...

  8. 今日头条优化实践: iOS 包大小二进制优化,一行代码减少 60 MB 下载大小

    摘要 苹果对 iOS App 大小有严格限制:下载大小超限会阻碍用户在蜂窝网络下载 App ,直接影响新用户转化:可执行文件超限将导致 App 审核被拒,直接影响上架.今日头条探索实践 __TEXT ...

  9. Python脚本下载今日头条视频(附加Android版本辅助下载器)

    一.前言 今日头条有毒,这句话不是虚的,现在资讯类app中也就大黄易和今日头条可以博取用户一点喜好了,我所说的喜好不是指内容精彩,而是评论,玩过这两个app的人都知道,看的不是新闻本生内容,而是他逗逼 ...

最新文章

  1. python3下载教程-Python3完全零基础入门精讲 全套视频教程
  2. 突发热点事件下微博高可用注册中心vintage的设计\u0026实践
  3. 今天我解决的sql中文乱码问题
  4. OpenShift 4 之通过命令创建Service Mesh环境
  5. Javascript:事件对象—event
  6. mvc 怎么把后台拼接好的div写到前台_PR:被写黑稿了怎么办?
  7. 操作系统课后答案第六章
  8. 图文介绍:Winhex的使用教程
  9. lower_bound 、upper_bound 、binary_search
  10. 简单多人聊天室——java网络编程
  11. php excel 输出条形码,excel如何将数字转换条形码
  12. 多项式求值秦九韶算法
  13. JVM 运行机制及其原理
  14. 三大运营商将重新划分4G版图
  15. 服务器虚拟化 魔力象限,Gartner:VMware成虚拟化魔力象限领导者
  16. python视频换脸下载_Faceswap拍照换脸软件电脑版(faceswap gui视频换脸)1.2官方版
  17. imresize 函数用法
  18. matplotlib的读书笔记
  19. 前端js实现本地模糊搜索
  20. 2020数字中国创新大赛 • 算法赛道冠军技术方案分享

热门文章

  1. pandas实战-2012美国总统竞选赞助分析
  2. 《Eolink 征文活动- -RESTful接口全解测试-全方位了解Eolink-三神技超亮点》
  3. Golang神奇的2006-01-02 15:04:05
  4. python-科研绘图系列(3)-雷达图
  5. 总结的太到位:python 多线程系列详解
  6. 你遇到过启动电脑以后系统桌面无法显示吗
  7. 相关方管理---章节练习
  8. 服务器默认管理口登录信息(默认IP、用户名、密码)大全
  9. 电脑网线,电脑网线插了没反应怎么回事?如何解决?
  10. 要报销的发票如何批量下载打印