爬取今日头条里的街拍数据

1.保存标题及图片URL到MongoDB

2.保存图片到本地

通过分析 今日头条街拍 的网页URL,可以发现其内容也是通过Ajax异步加载的,于是分析其API接口:

https://www.toutiao.com/search_content/?offset=40&
format=json&keyword=%E8%A1%97%E6%8B%8D&autoload=true&
count=20&cur_tab=1&from=search_tab

可以发现其内容是根据offset参数改变的,每次count=20条,然后就跟着这个思路,写下了爬虫.具体实现代码如下:

import json
import requestsfrom urllib.parse import urlencode
from pymongo import MongoClientdef get_one_page(url):# 设置user-agent为浏览器 防止被反爬虫发现后禁止登陆headers = {'user-agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3423.2 Safari/537.36'}response = requests.get(url, headers=headers)return response.json()def parse_dect(html):if html:items = html.get('data')for item in items:jiepai = {}jiepai['title'] = item.get('title')jiepai['datetime'] = item.get('datetime')jiepai['imgurl'] = item.get('image_list')yield jiepaidef save_to_mongodb(result):# 保存数据到mongodbconn = MongoClient('mongodb://1.1.1.1:27017')db = conn.jiepaiconnect = db['img']connect.insert(result)def save_img_to_computer(items):# for item in items:#     for i in item['imgurl']:#         file_path = '{0}/{1}.{2}'.format(item['title'], i['url'].spilt('/')[-1], 'jpg')#         response = requests.get(i['url'])#         with open(file_path, 'wb') as f:#             f.write(response.content)for item in items:# 将截取的图片保存jpg格式if item['url']:file_path = '{0}.{1}'.format(item['url'].split('/')[-1], 'jpg')# 拼接图片的urlurl = 'http:' + item['url']response = requests.get(url)with open(file_path, 'wb') as f:f.write(response.content)def main():# 头条url: https://www.toutiao.com/search/?keyword=街拍# 接口url: https://www.toutiao.com/search_content/?offset=40&format=json&keyword=%E8%A1%97%E6%8B%8D&autoload=true&count=20&cur_tab=1&from=search_tabbase_url = 'https://www.toutiao.com/search_content/?'for i in range(1, 11):i *= 20prams = {'offset': i,'format': 'json','keyword': '街拍', #街拍'autoload': 'true','count': '20','cur_tab': '1','from': 'search_tab',}# 拼接urlfull_url = base_url + urlencode(prams)html = get_one_page(full_url) # 获取接口传输的json数据results = parse_dect(html) # 解析json数据保存到jiepai字典中# 遍历API传过来的json数据for result in results:print(result)save_to_mongodb(result) # 保存数据到mongodbsave_img_to_computer(result['imgurl']) # 保存图片到本地if __name__ == '__main__':main()

实现结果:

网络爬虫-今日头条-街拍相关推荐

  1. python爬虫今日头条街拍美图开发背景_【Python3网络爬虫开发实战】6.4-分析Ajax爬取今日头条街拍美图...

    [摘要] 本节中,我们以今日头条为例来尝试通过分析Ajax请求来抓取网页数据的方法.这次要抓取的目标是今日头条的街拍美图,抓取完成之后,将每组图片分文件夹下载到本地并保存下来. 1. 准备工作 在本节 ...

  2. python爬虫今日头条街拍美图开发背景_分析Ajax请求并抓取今日头条街拍美图:爬取详情页的url与实际页面上显示不符...

    from urllib.parse import urlencode import re from requests.exceptions import RequestException from b ...

  3. Python爬虫 | 批量爬取今日头条街拍美图

    点击上方"Python爬虫与数据挖掘",进行关注 回复"书籍"即可获赠Python从入门到进阶共10本电子书 今日鸡汤浮云一别后,流水十年间. 专栏作者:霖he ...

  4. [Python3网络爬虫开发实战] --分析Ajax爬取今日头条街拍美图

    [Python3网络爬虫开发实战] --分析Ajax爬取今日头条街拍美图 学习笔记--爬取今日头条街拍美图 准备工作 抓取分析 实战演练 学习笔记–爬取今日头条街拍美图 尝试通过分析Ajax请求来抓取 ...

  5. python爬取今日头条_Python3网络爬虫实战-36、分析Ajax爬取今日头条街拍美图

    本节我们以今日头条为例来尝试通过分析 Ajax 请求来抓取网页数据的方法,我们这次要抓取的目标是今日头条的街拍美图,抓取完成之后将每组图片分文件夹下载到本地保存下来. 1. 准备工作 在本节开始之前请 ...

  6. python爬虫今日头条_python爬虫—分析Ajax请求对json文件爬取今日头条街拍美图

    python爬虫-分析Ajax请求对json文件爬取今日头条街拍美图 前言 本次抓取目标是今日头条的街拍美图,爬取完成之后,将每组图片下载到本地并保存到不同文件夹下.下面通过抓取今日头条街拍美图讲解一 ...

  7. 利用Ajax爬取今日头条头像,街拍图片。关于崔庆才python爬虫爬取今日头条街拍内容遇到的问题的解决办法。

    我也是初学爬虫,在看到崔庆才大佬的爬虫实战:爬取今日头条街拍美图时,发现有些内容过于陈旧运行程序时已经报错,网页的源代码早已不一样了.以下是我遇到的一些问题. 1.用开发者选项筛选Ajax文件时预览看 ...

  8. python爬取今日头条街拍,Python3今日头条街拍爬虫

    学习了大才哥的在线视频教程,特来这里总结分享一下. 不同于上一篇糗事百科的爬虫,这里爬取今日头条街拍需要分析ajax请求得来的数据. 首先这里是爬取的起始页 可以看到当我们往下拉滚动条的时候,新数据是 ...

  9. 爬取今日头条街拍图片

    ** *爬取今日头条街拍图片 * ** # coding=utf-8 import os import re import time from multiprocessing.pool import ...

最新文章

  1. LeetCode简单题之二叉树的最大深度
  2. Java应用程序中的性能改进:ORM / JPA
  3. Imagenet VGG-19网络加载和特征可视化
  4. vbs脚本读写INI文件
  5. 安卓 存储---SharedPreferences
  6. layui 隐藏工具栏打印按钮_PDF如何打印?为什么点打印没反应?
  7. c语言静态图片做成动态效果,如何使静态图片做成动态效果?怎么让静态图片动起来...
  8. Java Bag模型模拟
  9. 前端大框架知识归纳与总结
  10. 嵌入式Linux入门4:版本控制git的使用
  11. 试除法计算最小的N个素数
  12. MikroTik RouterOS安装chr授权到阿里云虚拟机(转)
  13. SQL注入 详解 有图有真相
  14. html5 浏览器适配问题
  15. 内存分配函数总结- 陈敏的博客- CSDN博客
  16. Windows没有应用商店情况安装英特尔集成显卡控制面板
  17. migration php,Lavarel常用语句之Migration
  18. 【TDA2x学习】资源汇总
  19. 新手卖家注意,提高转化率是关键
  20. 第四章:软件总体设计(4)此章结完

热门文章

  1. 国标GB28181漫谈
  2. 跨时钟域电路设计方法
  3. 绿盟SecXOps安全智能分析技术白皮书
  4. 应用协议 tcp udp
  5. CryEngine3-CE3本地化系统入门、UI字体更换
  6. Keil5快捷键使用
  7. 关于Unity3D的PC游戏窗口化时的分辨率解决方案
  8. Android 视频直播
  9. Discovery Studio简介
  10. rstp要点1:端口优先级为什么是16的倍数