xpath爬取网页图片
# 1. 导入需要的工具包 import requests # 用来发送网络请求爬取网页 from lxml import etree # 用来解析网页提取图片 import os # 用来创建文件夹保存图片 import time # 用来延时防止爬太快被封 # 2. 设置图片保存的位置 SAVE_PATH rC:\Users\Administrator\Desktop\堆糖图片 os.makedirs(SAVE_PATH, exist_okTrue) # 如果文件夹不存在自动创建 # 3. 定义爬取图片的函数 def get_duitang_img(): # 要爬的网站地址堆糖网 url https://www.duitang.com/ # 请求头模拟浏览器访问网站防止被反爬 headers { User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/146.0.0.0 Safari/537.36 Edg/146.0.0.0 } # 4. 发送请求获取网页源代码 resp requests.get(url, headersheaders) resp.encoding utf-8 # 设置网页编码防止乱码 # 5. 把网页转换成可以解析的格式 html etree.HTML(resp.text) # 6. ✅ 核心用 XPath 提取网页里所有图片地址 # //img/src 意思是找到所有 img 标签拿出它的 src 属性图片链接 img_urls html.xpath(//img/src) # 打印找到多少张图片 print(f共找到 {len(img_urls)} 张图片) # 7. 遍历所有图片链接开始下载 for i, img_url in enumerate(img_urls, 1): # 过滤无效链接只保留有效图片 if not img_url or http not in img_url and not img_url.startswith(//): continue # 如果链接是 // 开头自动补全 https:// if img_url.startswith(//): img_url https: img_url try: # 8. 下载图片获取图片二进制数据 img_data requests.get(img_url, headersheaders, timeout10).content # 给图片命名duitang_1.jpg、duitang_2.jpg... filename fduitang_{i}.jpg save_file os.path.join(SAVE_PATH, filename) # 9. 把图片保存到电脑里 with open(save_file, wb) as f: f.write(img_data) # 打印成功信息 print(f✅ 第 {i} 张下载成功{filename}) time.sleep(0.3) # 延时0.3秒温柔爬取 except: # 下载失败就提示 print(f❌ 第 {i} 张下载失败) # 10. 程序入口运行爬虫 if __name__ __main__: get_duitang_img()
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2501410.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!