百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术资源 > 正文

Python爬虫入门之爬取图片

off999 2024-12-03 00:10 24 浏览 0 评论

一、基本概念

  1. 通用爬虫和聚焦爬虫

通用网络爬虫 是 捜索引擎抓取系统(Baidu、Google、Yahoo等)的重要组成部分。主要目的是将互联网上的网页下载到本地,形成一个互联网内容的镜像备份。

聚焦爬虫,是"面向特定主题需求"的一种网络爬虫程序,它与通用搜索引擎爬虫的区别在于: 聚焦爬虫在实施网页抓取时会对内容进行处理筛选,尽量保证只抓取与需求相关的网页信息。

  1. HTTP和HTTPS请求

(1)url : 浏览器地址栏的地址

(2)请求方法:一般就两种。get请求和post请求

(3)请求头:常用 User-Agent:是客户浏览器的名称

  1. 抓包工具

浏览器的检查,常用有两个模块ElementsNetwork

二、数据请求

主要用的是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盘启动不了)
联想电脑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接口,可以直接插拔,而如果是圆形接头最好关机后再操作...

取消回复欢迎 发表评论: