【Python爬虫案例学习4】Python 爬取meizitu
基本配置:
- Python版本:3.6
- 开发工具:pycharm
403是返回的状态码
403错误,表示资源不可用。服务器理解客户的请求,但拒绝处理它,通常由于服务器上文件或目录的权限设置导致的WEB访问错误。
该网站有反爬措施
我们先试一下伪造浏览器
打开google看一下我们发送的请求
我们构造headers
`headers``=``{``'User-Agent'``:``'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36(KHTML, like Gecko) Chrome/75.0.3770.80 Safari/537.36'``}`
返回的状态码为 200
说明伪造浏览器成功
使用response.text查看返回的内容
我习惯调试使用bs4库BeautifulSoup类
正式写脚本我习惯用lxml库的etree类
查看网页编码
解析判断的编码与备用编码相同 我们可以忽略
开始进入解析部分
我们选取网页格式相同的4个部分进行爬取
菜单栏为
标签而且id='menu-nav’开始写代码
首先我们先创建BeautifulSoup对象
关于BeautifulSoup的使用 查看官方文档 https://www.crummy.com/software/BeautifulSoup/bs3/documentation.zh.html
选取我们需要的三个li标签加入我们创建的link_urls列表中
现在我们要爬取的三个美女类型的链接已经保存到link_urls列表中了
我们以第一类型的性感美女进行爬取
打开这个网页
我们分析这个网页会发现
总共有27个图片缩略图
其中有三个是广告
提取数据的时候要对广告进行清除
查看源代码
图片在
- 标签里面且id=‘pins’
找到这个ul标签之后
我们继续提取其中的li标签
由于广告的标签含有class属性我们提取li标签已经过滤了三个广告
所以长度为24
下一步获取图片的该类图片的地址 属性为href
一个图片是一个
- 标签
-
图片的链接到手 现在的链接只是我们要爬取的图片的地址 并不是图片的链接
现在我们进入图片的提取部分
我们以这个链接 https://www.mzitu.com/184274 进行分析
我们要的图片链接在这里
获取页面还是要通过伪造浏览器的方式
下载页面完成我们去获得图片的链接
方法与前面类似
网页中第一个img标签就是我们要的图片
获取到图片的地址 地址在img标签的src属性中我们提取出来
使用requests去下载它
我们使用requests下载时候会发现下载失败
文件写入为0
我们继续构造headers来成功下载图片
`headers``=``{``"User-Agent"``:``'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.80 Safari/537.36'``,<br> ``'Referer'``:``'https://www.mzitu.com/184274'``}<br>``# 这里的Referer是你跳转到这个图片的上一个地址 这也是一个反爬小技巧`
图片下载成功
img是requests返回内容
由于图片是二进制文件我们用"wb"方式打开写入文件
保存为jpg这样图片就写入成功了
视频 音频也可以这样下载
打开我们下载的图片
成功下载
爬取整个类型的图片我们只需要构造几个函数对url进行解析就好
以下笔者的思路
1 找到一个图片的地址我们可以提取页面的下一页的链接然后就是递归调用函数 进行爬取
2 通过查看图片的url我们发现图片是有规律的
https://i.meizitu.net/2019/05/12a02.jpg
https://i.meizitu.net/2019/05/12a03.jpg
…
最后一张图片就是
https://i.meizitu.net/2019/05/12a50.jpg
这样就能爬取这个系列的图片了
整个写完爬虫后运行一下 泡杯茶
完整代码60行左右就能进行爬取
【Python爬虫案例学习4】Python 爬取meizitu相关推荐
- 【Python爬虫案例学习21】爬取某站上海租房图片
####前言 其实很简短就是利用爬虫的第三方库Requests与BeautifulSoup. 其实就几行代码,但希望没有开发基础的人也能一下子看明白,所以大神请绕行. ####基本环境配置 pytho ...
- python爬淘宝店铺_【Python爬虫案例学习】Python爬取淘宝店铺和评论
安装开发需要的一些库 (1) 安装mysql 的驱动:在Windows上按win+r输入cmd打开命令行,输入命令pip install pymysql,回车即可. (2) 安装自动化测试的驱动sel ...
- 利用python爬虫(案例6+part14)--如何爬取科研数据
学习笔记 文章目录 Ajax动态加载网站数据抓取 动态加载的类型 那么该如何抓取数据? 如何得到JSON文件的地址? 观察JSON文件URL地址的查询参数 JSON格式数据转换成python字典 如何 ...
- 5分钟python爬虫案例,手把手教爬取国内外最新疫情历史数据
俗话说的好,"授之以鱼不如授之以渔",所以小编今天就把爬疫情历史数据的方法分享给你们. 基本思路:分析腾讯新闻"抗肺炎"版块,采用"倒推法" ...
- python爬虫案例-陶瓷公司数据爬取
用requests爬取要注意HTTPConnectionPool(host=xxx, port=xxx): Max retries exceeded with url...异常,出现这个异常的解决方法 ...
- python爬虫之股票数据定向爬取
python爬虫之股票数据定向爬取 功能描述 目标:获取上交所和深交所所有股票的名称和交易的信息 输出:保存到文件中 技术路线:requests-bs4-re 前期分析 选取原则:股票的信息静态存在H ...
- python爬虫初学实战——免登录爬取easyicon里的vip图标(2)
python爬虫初学实战-免登录爬取easyicon里的vip图标(2) 实验日期:2020-08-09 tips:没看过前面(1)的可以康康,指路 -> 爬取easyicon里的png图标 成 ...
- python爬虫 - 起点女生榜单爬取 - 1
python爬虫 - 起点女生榜单爬取 最近一直在追庆余年,顺带瞄了一眼小说,真真是精彩(虽然因为范闲多妻的设定接受不了就放弃了). 说来说去,还是钟爱女频的修仙小说,所以就想爬一下起点女生网 ...
- Python爬虫实战系列(一)-request爬取网站资源
Python爬虫实战系列(一)-request爬取网站资源 python爬虫实战系列第一期 文章目录 Python爬虫实战系列(一)-request爬取网站资源 前言 一.request库是什么? 二 ...
- python爬虫实战(一)--爬取知乎话题图片
原文链接python爬虫实战(一)–爬取知乎话题图片 前言 在学习了python基础之后,该尝试用python做一些有趣的事情了–爬虫. 知识准备: 1.python基础知识 2.urllib库使用 ...
最新文章
- 关于C语言的问卷调查
- 通过Intent调用系统功能大全
- 【数据结构与算法】之深入解析“根据身高重建队列”的求解思路与算法示例
- 聊聊高并发(二十八)解析java.util.concurrent各个组件(十) 理解ReentrantReadWriteLock可重入读-写锁
- 关于 vim 的 magic 设置
- java excel 插件开发工具_程序员常用的15 种开发者工具推荐
- 如何避免用动态语言的思维写Go代码
- windows2008r2补丁_我偶然发现一个严重 0day,影响 Win7 和 Server 2008 R2,微软未发补丁(详情)...
- java 定义动态接口_使用自定义annotation接口进行aspectj动态缓存
- 编译Windows版本ffmpeg:cygwin方式通过
- 微信小程序使用iconfont在线icon
- python高斯核函数_python 实现高斯核与卷积过程
- [面试题]1000瓶毒药里面只有1瓶是有毒的,问需要多少只老鼠才能试出那瓶有毒。
- 最终结束漂泊的身份-我办理北京人才引进的经历
- Flutter 报错:Could not resolve io.flutter:flutter_embedding_debug:1.0.0-ee76268252c22f5c11e82a7b87423c
- SAP中事务码SQVI快速浏览器
- python鲜花水果商城毕业设计开题报告
- swss-bd-interview
- S*ST星美(000892):丰盛地产重组事宜形成初步方案
- 可信数智云,联通云的个性化标签