我前几篇文章都是说一些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爬取网站美女图(附代码及教程)的更多相关文章

  1. 手把手教你使用Python爬取西刺代理数据(下篇)

    /1 前言/ 前几天小编发布了手把手教你使用Python爬取西次代理数据(上篇),木有赶上车的小伙伴,可以戳进去看看.今天小编带大家进行网页结构的分析以及网页数据的提取,具体步骤如下. /2 首页分析 ...

  2. python抓取性感尤物美女图

    由于是只用标准库,装了python3运行本代码就能下载到多多的美女图... 写出代码前面部分的时候,我意识到自己的函数设计错了,强忍继续把代码写完. 测试发现速度一般,200K左右的下载速度,也没有很 ...

  3. Python脚本爬取网站美女照片

    上次无意之中看到一个网站,里面全是美女的照片,我就心想,哪天有时间了得把这网站的所有美女照片都得爬下来.今天有时间,写了点代码,爬去了网站的所有照片.附上战果!图片实在是太多了,爬半个多小时 先附上所 ...

  4. python爬取网站数据保存使用的方法

    这篇文章主要介绍了使用Python从网上爬取特定属性数据保存的方法,其中解决了编码问题和如何使用正则匹配数据的方法,详情看下文     编码问题因为涉及到中文,所以必然地涉及到了编码的问题,这一次借这 ...

  5. python爬取网站数据

    开学前接了一个任务,内容是从网上爬取特定属性的数据.正好之前学了python,练练手. 编码问题 因为涉及到中文,所以必然地涉及到了编码的问题,这一次借这个机会算是彻底搞清楚了. 问题要从文字的编码讲 ...

  6. 教你用python爬取抖音app视频

    记录一下如何用python爬取app数据,本文以爬取抖音视频app为例. 编程工具:pycharm app抓包工具:mitmproxy app自动化工具:appium 运行环境:windows10 思 ...

  7. Python 爬取网站资源文件

    爬虫原理: 以下来自知乎解释 首先你要明白爬虫怎样工作.想象你是一只蜘蛛,现在你被放到了互联“网”上.那么,你需要把所有的网页都看一遍.怎么办呢?没问题呀,你就随便从某个地方开始,比如说人民日报的首页 ...

  8. python爬取网站页面时,部分标签无指定属性而报错

    在写爬取页面a标签下href属性的时候,有这样一个问题,如果a标签下没有href这个属性则会报错,如下: 百度了有师傅用正则匹配的,方法感觉都不怎么好,查了BeautifulSoup的官方文档,发现一 ...

  9. Python爬取网站上面的数据很简单,但是如何爬取APP上面的数据呢

随机推荐

  1. 2、记录代码----Ajax

    $.ajax({ url:'/content-engine/index.php/tracker/confirmSendEmail', async: false, //默认为true,同意异步传输 da ...

  2. PMML辅助机器学习算法上线

    在机器学习用于产品的时候,我们经常会遇到跨平台的问题.比如我们用Python基于一系列的机器学习库训练了一个模型,但是有时候其他的产品和项目想把这个模型集成进去,但是这些产品很多只支持某些特定的生产环 ...

  3. 使用Statement执行DML和DQL语句

    import com.loaderman.util.JdbcUtil; import java.sql.Connection; import java.sql.DriverManager; impor ...

  4. Redis Cluster 官方集群搭建指南

    安装ruby环境因为官方提供的创建集群的工具是用ruby写的,需要ruby2.2.2+版本支持,ruby安装需要指定openssl. 安装openssl $ wget https://www.open ...

  5. pandas之时间序列(data_range)、重采样(resample)、重组时间序列(PeriodIndex)

    1.data_range生成时间范围 a) pd.date_range(start=None, end=None, periods=None, freq='D') start和end以及freq配合能 ...

  6. python 生成随机红包

    假设红包金额为money,数量是num,并且红包金额money>=num*0.01 原理如下,从1~money*100的数的集合中,随机抽取num-1个数,然后对这些数进行排序,在排序后的集合前 ...

  7. Could not resolve host: mirrorlist.centos.org Centos 7 Unkown error

    安装Centos7(core)以后,网卡默认不会启用.这是一个大坑,直接报错,这是一个过度优化,有几个开发人员/运维人员安装centos7(core)不用ssh去连接服务器的. 报错如下: Loade ...

  8. python网络编程(Socket、TCP、UDP)

    Socket 是网络编程的一个抽象概念,通常我们用一个Socket表示 "打开了一个网络链接",而打开一个Socket 需要知道目标计算机的IP 地址和端口号,再指定协议类型即可. ...

  9. etcd 使用: golang 例子

    一:连接到 etcd package main import ( "fmt" "go.etcd.io/etcd/clientv3" "time&quo ...

  10. mysql数据库为什么要分表和分区?

    一般下载的源码都带了MySQL数据库的,做个真正意义上的网站没数据库肯定不行. 数据库主要存放用户信息(注册用户名密码,分组,等级等),配置信息(管理权限配置,模板配置等),内容链接(html ,图片 ...