Python爬虫入门之爬取图片
off999 2024-12-03 00:10 24 浏览 0 评论
一、基本概念
- 通用爬虫和聚焦爬虫
通用网络爬虫 是 捜索引擎抓取系统(Baidu、Google、Yahoo等)的重要组成部分。主要目的是将互联网上的网页下载到本地,形成一个互联网内容的镜像备份。
聚焦爬虫,是"面向特定主题需求"的一种网络爬虫程序,它与通用搜索引擎爬虫的区别在于: 聚焦爬虫在实施网页抓取时会对内容进行处理筛选,尽量保证只抓取与需求相关的网页信息。
- HTTP和HTTPS请求
(1)url : 浏览器地址栏的地址
(2)请求方法:一般就两种。get请求和post请求
(3)请求头:常用 User-Agent:是客户浏览器的名称
- 抓包工具
浏览器的检查,常用有两个模块Elements和Network
二、数据请求
主要用的是Python的第三方库requests库,pip install requests 可以安装。
1、最简单的发送get请求就是通过requests.get来调用:(模拟浏览器的get请求)
response = requests.get("http://www.baidu.com/")2、添加headers和查询参数
headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36"}
response = requests.get("http://www.baidu.com/s", headers = headers)3、对响应进行处理
# 查看响应内容,response.content返回的字节流数据
response.content
# 对字节流数据解码
response.content.decode("utf-8") # 等价于response.text
response.content.decode("gbk")
# 查看响应内容,response.text 返回的是Unicode格式的数据
response.text三、数据提取
1、常用提取方式
常用的有三种提取方式。css选择器、xpath语法、正则表达式。
学习难度前两者相似,最后一个较高;但效率从低到高。
2、xpath和lxml库
(1)lxml库, C 语言实现的,是一款高性能的 Python HTML/XML 解析器,之后可以XPath语法,来快速的定位特定元素以及节点信息
(2)xpath常用语法:
// 从当前标签下任意位置匹配
../ 从当前标签的父级开始匹配
./ 从当前标签开始匹配
/text() 表示从当前标签下匹配所有文本内容
/@name 表示匹配当前标签下的属性的value
[] 中括号中可以写过滤的条件(支持and、or语法),也可以写数组下标(从1开始)
/div[@class="classname"] 表示匹配当前标签下所有class为classname的div对象
/div[contains(@class,"classname")] 表示匹配当前标签下所有class包含classname的div对象四、保存数据
# 保存图片数据
from urllib import request
request.urlretrieve('http://img.netbian.com/file/2020/1008/9c76cd345cd49c9675dc65f696871a66.jpg','xxx.jpg')五、爬取彼岸桌面网所有美女图片(1080P高清图)
1、网站截图(177页,每页十几张图片)
2、成果截图
3、最终代码
# 爬取多页
import requests # 用于模拟浏览器发送请求的库
from lxml import etree # 解析响应内容的库,构建树结构,便于xpath语法索引
from urllib import request # 下载图片时用到
headers = {"User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 11_1_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36"}
# 此处控制要爬取的页码总数,网站目前共有177页,所以此处最大写178
for page in range(1, 11):
# 第一页是这种url:http://www.netbian.com/meinv/,
# 其他页都是http://www.netbian.com/meinv/index_%d.htm的形式
if page == 1:
page_url = "http://www.netbian.com/meinv/"
else:
page_url = "http://www.netbian.com/meinv/index_%d.htm" % page
# 网站的charset=“gbk”
html = requests.get(page_url, headers=headers).content.decode("gbk")
# 利用lxml的etree.HTML解析html,构建树结构
tree = etree.HTML(html)
# 利用xpath语法提取当前缩略图下图片的url
data = tree.xpath('//div[@class="list"]')[0]
hrefs = data.xpath('//li/a/@href') # [/desk/xxxxx.htm,/desk/xxxxx.htm]形式
# 遍历所有的缩略图url
for href in hrefs:
if href.startswith("/desk"):
# 拼接完整的缩略图url地址
url = "http://www.netbian.com" + href
# 请求缩略图url地址,之后解析得到1080P图片地址
picture_html = requests.get(url, headers = headers).content.decode('gbk')
picture_tree = etree.HTML(picture_html)
# url2 = picture_tree.xpath('//td/a/@href')
url2 = picture_tree.xpath('//div[@class="pic"]//img/@src')[0]
# 定义图片名称,下载图片
filename = url2.split("/")[-1]
request.urlretrieve(url2, filename)六、总结
1、学完这些你基本掌握了爬虫的基础流程,利用requests库模拟浏览器发送请求,对服务器返回内容进行解码。之后运用lxml库构建解析树,利用xpath语法提取树中的关键信息节点,最后保存到本地。本案例学完后你基本可以爬取绝大部分网站的图片了。
相关推荐
- 外网服务器地址(外网服务器地址ip大全)
-
要弄懂这个问题,你首先要了解什么叫内网,什么叫外网,什么叫服务器,服务器在网络中所扮演的是什么角色,内网:就是指内部网络,窄义上的内网就是指中小型的局域网外网:就是指在你办公网络之外能访问到的网络...
- 360卸载不了的软件怎么办(用360卸载软件卸载不了)
-
开启了自我保护,关闭即可。解决方法如下:准备材料:360安全卫士、电脑1、在电脑上打开安全卫士,进去之后,点击右上方的列表图标,选择设置,2、进去安全卫士设置界面之后,点击安全防护中心,3、进去安全防...
-
- 联想电脑u盘启动不了(联想电脑为什么u盘启动不了)
-
1,启动计算机,并按住DEL键不放,但是也有按其它键的,所以请根据提示,直到出现BIOS设置窗口。2,键盘方向键向右移动到BIOS"Startup"菜单,然后选择“CMS”按回车键,然后选择"CMS"里面的Enabled。3,在对上面的操作...
-
2026-01-03 02:03 off999
- 海马苹果助手官方下载(海马苹果助手官方正版)
-
除了官方版,苹果其他服务器互通吧好像,只是不能换服务器登录你好;根据你的提示,可能是你的手机系统不正常蚂蚁浏览器,你可以现在一个手机QQ浏览器,它的体积小,功能强大,还特别的节省流量,它使用自主研发的...
- wifi恢复出厂设置后上不了网
-
恢复出厂设置后,路由器的网络设置也被清空了,需要重新设置账号和密码等信息并配置网络。还需要确认路由器的网线连接是否正确,以及是否有其他网络设备干扰。 如果重新配置还是连不上网不能用,可能需要...
- 联想笔记本蓝屏怎么解决(联想笔记本蓝屏怎么解决方法)
-
回答如下:如果您的联想笔记本电脑出现蓝屏问题,可以尝试以下解决方法:1.重启电脑:尝试简单的重启电脑,看是否可以解决问题。2.检查硬件:检查您的笔记本电脑是否有硬件故障。例如,您可以拔下所有外接设...
- 微星显卡型号档次梯队(微星显卡大全)
-
2019年微星新出的显卡主要系列划分:VENTUS(万图师):入门级版本,也有人说是丐版,用料一般。ARMOR(装甲师):中低版本,做工用料主流,比丐版强一点。DUKE(暗黑龙爵):中等版本,做工用料...
- 腾达扩展器a12设置(腾达扩展器设置方法)
-
1、检查扩展器的WiFi是否正确无线扩展器连接的是上端的WiFi,然后再转发出新的WiFi。所以,必须要知道正确的上端WiFi信息,比如WiFi名称和密码。解决方法:用手机连接上端WiFi,登录到这个...
- win7 旗舰版32位密钥(win7旗舰版密钥32位激活不了)
-
可以win7旗舰版32位产品密钥:1、TG664-TJ7YK-2VY3K-4YFY6-BCXF4;2、MVG64-RQDVY-KB9RM-MX9WT-MW824;3、TDTY2-6HJ49-46PCK...
- win7下安装ghostxp(win7安装方法ghost)
-
在win7家庭版电脑中安装虚拟xp系统方法:1.首先安装windows6.1-kb958559-x86-refreshpkg补丁。2.安装完成后,需要重启电脑。3.重启电脑,再安装windowsxpm...
- 电脑怎么锁屏快捷键(暂时离开电脑怎么锁屏快捷键)
-
计算机锁屏的快捷键在不同的操作系统上可能会有所不同,但在Windows系统中通常是“Windows键+L”组合键。当您按下这个组合键时,计算机会立即锁定屏幕,需要输入密码才能解锁。这个快捷键可以方便地...
- microsoft+teams+meeting怎么加入会议
-
teams手机点击加入会议没有反应原因和解决方法如下:1.时区不对,把电脑屏幕右下角时区调整好即可进入TeamsPC版。2.会议主办方的问题。3.MicrosoftTeams客户端的大多数问题都...
- 笔记本怎么设置wifi(笔记本怎么设置wifi密码)
-
笔记本电脑连接无线网络的具体设置步骤如下:1.打开电脑上的无线网络连接功能。在电脑屏幕下方中央区域找到网络连接图标,通常是两个悬挂的屏幕,点击打开。2.在网络连接列表中找到无线选项。一般无线选项图...
- 键盘所有按键都没反应(键盘无反应,鼠标正常)
-
台式机键盘失灵可以按以下四步来解决:1、重新插键盘与主机连接接口。有可能因为接口的接触不良导致的键盘失灵,这时可以对插头进行拔插,注意:如果是USB接口,可以直接插拔,而如果是圆形接头最好关机后再操作...
欢迎 你 发表评论:
- 一周热门
-
-
抖音上好看的小姐姐,Python给你都下载了
-
全网最简单易懂!495页Python漫画教程,高清PDF版免费下载
-
Python 3.14 的 UUIDv6/v7/v8 上新,别再用 uuid4 () 啦!
-
飞牛NAS部署TVGate Docker项目,实现内网一键转发、代理、jx
-
python入门到脱坑 输入与输出—str()函数
-
宝塔面板如何添加免费waf防火墙?(宝塔面板开启https)
-
Python三目运算基础与进阶_python三目运算符判断三个变量
-
(新版)Python 分布式爬虫与 JS 逆向进阶实战吾爱分享
-
失业程序员复习python笔记——条件与循环
-
系统u盘安装(win11系统u盘安装)
-
- 最近发表
- 标签列表
-
- python计时 (73)
- python安装路径 (56)
- python类型转换 (93)
- python进度条 (67)
- python吧 (67)
- python的for循环 (65)
- python格式化字符串 (61)
- python静态方法 (57)
- python列表切片 (59)
- python面向对象编程 (60)
- python 代码加密 (65)
- python串口编程 (77)
- python封装 (57)
- python写入txt (66)
- python读取文件夹下所有文件 (59)
- python操作mysql数据库 (66)
- python获取列表的长度 (64)
- python接口 (63)
- python调用函数 (57)
- python多态 (60)
- python匿名函数 (59)
- python打印九九乘法表 (65)
- python赋值 (62)
- python异常 (69)
- python元祖 (57)
