个人博客请访问 http://www.x0100.top

这是一篇福利教程.为什么这么说呢.我们要爬取的内容是美图网站(嘿嘿,老司机都懂的)

废话不多说.开始今天的表演.

这个图集网站不要问我怎么来的.绝对不是我刻意找的.(其实是看了别的发的一篇文章,就想自己动手实现一下)

我们今天的任务就是 将这些图集保存下来。

首先我们需要获取到所有的列表,我们往下拉动滚动条,拉到底,会继续自动加载内容,我们通过浏览器的NetWork可以发现请求的数据包

我们来分析一下这个数据包

URL:https://www.toutiao.com/search_content/?offset=0&format=json&keyword=%E6%B8%85%E7%BA%AF%E7%BE%8E%E5%A5%B3&autoload=true&count=20&cur_tab=3&from=gallery

通过url我们可以知道几个重要的参数

  • offset 偏移量

  • count 数量

  • cur_tab 当前分类

这里很多朋友可能对偏移量不太了解,这里我用sql语句表示一下,如果了解sql的朋友 肯定就知道了

mysql> SELECT * FROM art LIMIT offset , countmysql> SELECT * FROM table LIMIT 5,10;  // 检索记录行 6-15mysql> SELECT * FROM table LIMIT 95,1; // 检索记录行 96

这里我每次读取一条,对一条进行操作.

URL:https://www.toutiao.com/search_content/?offset=1&format=json&keyword=%E6%B8%85%E7%BA%AF%E7%BE%8E%E5%A5%B3&autoload=true&count=1&cur_tab=3&from=gallery

每次对offset 进行自增即可了

我们点击进去 看看数据的结构.

我们需要获取到该图集的链接。

进入这篇图集,在NetWork中并没有发现图集有关的请求接口,可能也是混排的.

我们可以查看页面的源码

原来真的是混排的写法.看了一下这里用到vue.具体怎么实现的我们不去探讨了,我们只需要取出数据即可。

那如何取出呢? 提供两种方法,一种就是正则,一种就是自己写一个取文本的函数.这里我用第二种作为演示,下面是取文本的函数.

def txt_wrap_by(start_str, end, html):start = html.find(start_str)if start >= 0:start += len(start_str)end = html.find(end, start)if end >= 0:return html[start:end].strip()

我们取出 JSON.parse(“”) 中的数据

观察数据,可以发现 我们取出 url 就可以了,这里的数据是json但是被转义了,我们就通过正则取出吧

正则的语法如图上,最后我也会放出所有代码滴,大家放心.

取到了uri 我们只要在前面拼上 http://p3.pstatp.com/ 即可.

然后保存为图片即可~

上面说的都是思路,最后放出代码~

import requests,os,json,re,datetime# 主函数
def main():foreach_art_list()def foreach_art_list():# 判断目录下是否存在jilv.txt文件 如果存在则读取里面的数值if os.path.exists('./jilv.txt'):f = open('./jilv.txt')n = f.read()n = int(n)f.close()else:n = 1    while True:url = 'http://www.toutiao.com/search_content/?offset=' + str(n) + '&format=json&keyword=%E6%B8%85%E7%BA%AF%E7%BE%8E%E5%A5%B3&autoload=true&count=1&cur_tab=3&from=gallery're = requests.get(url)data = re.json()['data']if not data:break# 运行图片下载函数download_pic(data[0]['article_url'],n)n = n+1# 将n写入文件 防止程序运行出错 可以继续运行with open('./jilv.txt', 'w') as f:f.write(str(n))def download_pic(url,n):download_pic_url = 'http://p3.pstatp.com/'# 这里必须带上协议头,否则会请求失败header = {'user-agent':'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.162 Safari/537.36'}res = requests.get(url,headers = header)content = res.textimg_list_json = txt_wrap_by('gallery: JSON.parse("','"),',content)# 正则获取所有的uriimg_list = re.findall(r'uri\\":\\"(.*?)\\"',img_list_json)#判断是否有此目录if 'img' not in os.listdir('.'):os.mkdir('./img')if str(n) not in os.listdir('./img'):os.mkdir('./img/'+str(n))for v in img_list:img_path = download_pic_url + vimg_path = img_path.replace("\\", "")# 读取图片atlas = requests.get(img_path).content# 保存图片with open( './img/' + str(n) + '/' + str(datetime.datetime.now()) +'.jpg', 'wb') as f:  # 把图片写入文件内f.write(atlas)# 取出两个文本之间的内容
def txt_wrap_by(start_str, end, html):start = html.find(start_str)if start >= 0:start += len(start_str)end = html.find(end, start)if end >= 0:return html[start:end].strip()# 运行程序
main()

最后 展示一下 运行结果:

关注微信公众号和今日头条,精彩文章持续更新中。。。。。

用Python爬去今日头条美女图片相关推荐

  1. Python 爬取今日头条的图片新闻

    工具 from urllib.parse import urlencode import requests 网页 进入今日头条,搜索图片新闻 往下进行网页刷新的时候,按f12选择xhr进行筛选可以看到 ...

  2. 【Ajax+】爬去今日头条图片

    文章目录 使用Ajax爬去今日头条街拍图片 Ajax背景了解 目的:爬去今日头条街拍图片 思路分析 F12获取相关数据 代码 结果 使用Ajax爬去今日头条街拍图片 Ajax背景了解 Ajax ,全称 ...

  3. Python的Requests来爬取今日头条的图片和文章

    Python的Requests来爬取今日头条的图片和文章并且存入mongo config.py MONGO_HOST = 'localhost' MONGO_PORT = 27017 MONGO_DB ...

  4. python爬取街拍美女图片

    python爬取街拍美女图片 完整代码: import requests from urllib.parse import urlencode import os from hashlib impor ...

  5. python爬取今日头条专栏_[python3]今日头条图片爬取

    前言 代码设计流程,先模拟ajax发送搜索"街拍美女",提取返回json里面的article_url,再访问article_url,提取article_url响应的图片url,访问 ...

  6. 用python爬取今日头条上的图片_Python爬虫:抓取今日头条图集

    今天我们来爬取今日头条图集,老司机以街拍为例. 运行平台: Windows Python版本: Python3.6 IDE: Sublime Text 其他工具: Chrome浏览器 1.网页分析 从 ...

  7. 用Python爬取今日头条,里面的东西统统白送!

    近年来今日头条做的可谓是风生水起,自上线以来,围绕内容载体和分发方式两个维度不断丰富,至今已衍生出图文.视频.微头条.专栏.搜索.直播等多种内容形式.根据最新中国联通发布的App大数据排行榜,今日头条 ...

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

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

  9. python爬取今日头条的文章_Python3爬取今日头条有关《人民的名义》文章

    Python3爬取今日头条有关<人民的名义>文章 最近一直在看Python的基础语法知识,五一假期手痒痒想练练,正好<人民的名义>刚结束,于是决定扒一下头条上面的人名的名义文章 ...

最新文章

  1. MPB:农科院牧医所赵圣国组-基于GraftM对功能基因进行物种注释
  2. c#结合emgucv进行人脸检测_人脸识别与测温结合在办公场景有哪些应用?
  3. Spring Boot 特性 —— SpringApplication
  4. 【Groovy】自定义 Xml 生成器 BuilderSupport ( setParent 方法中设置父节点与子节点关系 )
  5. 密码学入门1——凯撒密码和三重DES加解密
  6. JavaFX鼠标点击事件
  7. Java压缩技术(七) TAR——Commons实现
  8. 一条数据的HBase之旅,简明HBase入门教程1:开篇
  9. 【算法基础】动态规划的理解
  10. Qt C++调用Python,解决线程问题,以及GIL锁的处理
  11. html中加载页面时调用函数,js页面加载时调用函数方法
  12. R语言软件R Studio以及python下载函数包使用常见问题(持续更新中)
  13. 《UnityAPI.Color颜色》(Yanlz+Unity+SteamVR+云技术+5G+AI+VR云游戏+Color+Lerp+RGBToHSV+gamma+linear+立钻哥哥++OK++)
  14. 第三章 编译器基础知识之ELF文件格式简介
  15. socket 5协议详解
  16. java抓取网站数据
  17. 数据库xxx已打开,并且一次只能有一个用户访问。 (Microsoft SQL Server,错误: 924)
  18. 2019/01/01 一位前端实习生 艰辛过程 励志 实习周记(二)——第一周
  19. java连连看算法_用 JAVA 开发游戏连连看(之三)将算法与界面结合起来
  20. 查看当前使用的数据库的版本

热门文章

  1. 从小白程序员一路晋升为大厂高级技术专家我看过哪些书籍?(建议收藏)
  2. 【Html + Js + CSS——电流壁纸(源码+特效)】
  3. 安全行业的发展与现状
  4. 新-新古典综合给出的正统答案-中国视角下的宏观经济
  5. 如何判断时间是否在跨天的时间段之内
  6. 虚拟机VMware忘记密码如何重置密码?
  7. 如何通过发帖赚钱的(看完后绝对比打工强)
  8. java开发微信如何维护登录状态_微信小程序中做用户登录与登录态维护的实现详解...
  9. Linux九阴真经之九阴白骨爪残卷1(加密和安全)
  10. badboy脚本开发事件