教你用python爬取网站美女图(附代码及教程)
我前几篇文章都是说一些python爬虫库的用法,还没有说怎样利用好这些知识玩一些好玩的东西。那我今天带大家玩好玩又刺激的,嘻嘻!对了,requests库和正则表达式很重要的,一定要学会!一定要学会!!一定要学会!!!我现在的爬虫基本都是用这两样东西来爬的。所以学不学你看着办吧。
来到今天的重点,我今天发现一个网站很好爬的,非常适合新手,我没有设置请求头什么的爬了很多遍很没有封我ip和给我返回403之类的,所以他对我们第一次玩爬虫的人来说很友好。这个网站就是今日头条。
这里我给大家整理了一套Python学习视频和爬虫项目实战,大家都可以领取学习!领取方式请到文末。
我们今天要爬的就是他的图集,先看看网站。搜索美女,然后点击图集,可以看到下面这些内容
我们要做的就是把上面的图片给爬下来。
那开始分析网站。按下f12,然后点击network,刷新下你可以看到这些
进行寻找哪个请求返回这些图片的,在网页上可以看到图片会随着你下拉网页而进行显示更多的图片,这是动态加载的,所以可以轻松知道这个可以在xhr文件中找到,果然,你看
不断往下拉,不断地发送请求,点击这个请求看看是返回什么数据
可以看到这是个json,里面有图片的url,这个就是我们要找的东西,那我们可以用json库来解析,还有这个网站是get请求,这样就可以用requests库来发送然后解析下就可以了,非常简单。
那么分析就到这里,直接上代码
import requests, ospath_a = os.path.abspath('.')kw = ''while True: kw = input('请输入你要获取的图片(若想结束请输入1)') if kw == '1': print('已退出,你下载的图片已保存在'+path_a+',请查看!') break for x in range(0, 1000, 20): url = 'https://www.toutiao.com/search_content/?offset='+str(x)+'&format=json&keyword=%s&autoload=true&count=20&cur_tab=3&from=gallery' % kw response = requests.get(url) data = response.json()['data'] if not data: print('下载'+kw+'图片完毕,请换个关键词继续') break n = 1 # 记录文章数 for atlas in data: # 创建目录 title = atlas['title'] print(atlas) try: if title not in os.listdir('.'): # 防止文件名已经存在 os.mkdir(title) except OSError as e: print('文件名出错,创建目录失败,重新创建一个随机名字') title = kw + '文件名出错'+str(x) if title not in os.listdir('.'): os.mkdir(title) k = 1 # 记录下载的图片数 path = os.path.join(path_a, title) # 转进图片目录 os.chdir(path) for image in atlas['image_list']: # 这个链接获取的图片是小张的,看着不够爽,所以下面替换成大的图片 image_url = image['url'].replace('list', 'large') # 改个链接获取大的图片 atlas = requests.get('http:'+image_url).content with open(str(k)+'.jpg', 'wb') as f: # 把图片写入文件内 f.write(atlas) print('下载完第%d个文章的%d幅图完成' % (x+n, k)) k += 1 n += 1 # 转出图片目录 os.chdir(path_a)
这个只用了requests库基本就能完成了,os库是用来操作文件目录的,这里就不详细说了。可以看到,代码量非常少,除开注释就大概四十行吧,是不是比其他语言简洁多了?是不是requests库很好用?这里可以充分体现了人生苦短,我用python的真理。
这里我给大家整理了一套Python学习视频和爬虫项目实战,大家都可以领取学习!领取方式请到文末。
python 爬虫项目实战
python基础语法讲解
python之mysql教程
人工智能+Python基础班
获取方式:
关注微信公众号:大数据技术汇
关注后在公众平台上回复"Python"。(注意是公众平台回复)
如果大家觉得有用,可以转发分享给更多的朋友!
教你用python爬取网站美女图(附代码及教程)的更多相关文章
- 手把手教你使用Python爬取西刺代理数据(下篇)
/1 前言/ 前几天小编发布了手把手教你使用Python爬取西次代理数据(上篇),木有赶上车的小伙伴,可以戳进去看看.今天小编带大家进行网页结构的分析以及网页数据的提取,具体步骤如下. /2 首页分析 ...
- python抓取性感尤物美女图
由于是只用标准库,装了python3运行本代码就能下载到多多的美女图... 写出代码前面部分的时候,我意识到自己的函数设计错了,强忍继续把代码写完. 测试发现速度一般,200K左右的下载速度,也没有很 ...
- Python脚本爬取网站美女照片
上次无意之中看到一个网站,里面全是美女的照片,我就心想,哪天有时间了得把这网站的所有美女照片都得爬下来.今天有时间,写了点代码,爬去了网站的所有照片.附上战果!图片实在是太多了,爬半个多小时 先附上所 ...
- python爬取网站数据保存使用的方法
这篇文章主要介绍了使用Python从网上爬取特定属性数据保存的方法,其中解决了编码问题和如何使用正则匹配数据的方法,详情看下文 编码问题因为涉及到中文,所以必然地涉及到了编码的问题,这一次借这 ...
- python爬取网站数据
开学前接了一个任务,内容是从网上爬取特定属性的数据.正好之前学了python,练练手. 编码问题 因为涉及到中文,所以必然地涉及到了编码的问题,这一次借这个机会算是彻底搞清楚了. 问题要从文字的编码讲 ...
- 教你用python爬取抖音app视频
记录一下如何用python爬取app数据,本文以爬取抖音视频app为例. 编程工具:pycharm app抓包工具:mitmproxy app自动化工具:appium 运行环境:windows10 思 ...
- Python 爬取网站资源文件
爬虫原理: 以下来自知乎解释 首先你要明白爬虫怎样工作.想象你是一只蜘蛛,现在你被放到了互联“网”上.那么,你需要把所有的网页都看一遍.怎么办呢?没问题呀,你就随便从某个地方开始,比如说人民日报的首页 ...
- python爬取网站页面时,部分标签无指定属性而报错
在写爬取页面a标签下href属性的时候,有这样一个问题,如果a标签下没有href这个属性则会报错,如下: 百度了有师傅用正则匹配的,方法感觉都不怎么好,查了BeautifulSoup的官方文档,发现一 ...
- Python爬取网站上面的数据很简单,但是如何爬取APP上面的数据呢
随机推荐
- [学习笔记] Tangent Distance
Tangent Distance 简介 切空间距离可以用在KNN方法中度量距离,其解决的是图像经过有限变换之后还能否被分类正确,例如.对一张数字为5的手写数字图片,将其膨胀后得到图像p1,此时KNN还 ...
- Win10删除文件显示删除确认对话框
1.右键单击“回收站”图标:2.在弹出属性窗口中,点击“属性”选项:3.在“回收站”窗口中,在选项“显示删除确认对话框”前面打钩,并单击“确定”按钮:
- RGB颜色透明度转换
100% — FF95% — F290% — E685% — D980% — CC75% — BF70% — B365% — A660% — 9955% — 8C50% — 8045% — 7340% ...
- Struts2与Servlet API的解耦访问
- 解决Mysql无法导入存在null数据的问题
其实很简单,在mysql的控制台输入 SET @@GLOBAL.sql_mode="NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"; 然后重 ...
- np.array()与np.asarray()区别
1. 数据源a是数组ndarray时,array仍然会copy出一个副本,占用新的内存,但asarray不会.也就是说改变a的值,b不会. # 数据源a是列表时,两者没区别 a=[[1,2,3],[4 ...
- java 抽取 word,pdf 的四种武器
转自:https://www.ibm.com/developerworks/cn/java/l-java-tips/ 感谢作者发布的文章 用 jacob 其实 jacob 是一个 bridag ...
- netcore kafka操作
安装使用: 1:下载nuget包 Confluent.Kafka librdkafka.redist System.Runtime.CompilerServices.Unsafe 基于.net实现ka ...
- C#在DataGridView中自定义键盘功能——光标在单元格内具体位置
//捕捉按键 protected override bool ProcessCmdKey(ref Message msg,Keys keyData) { if (keyData == Keys.Rig ...
- spring-boot集成3:集成swagger
Why swagger? 使用swagger让你从编写接口文档的无聊工作中解脱出来 1.Maven依赖 <!-- swagger --> <dependency> <gr ...