一、上代码
from pyquery import PyQuery as pq
import requests
from openpyxl import Workbook
def get_image_urls(url):
# 发起网络请求获取页面内容
response = requests.get(url)
html = response.text
# 使用 PyQuery 解析 HTML
doc = pq(html)
# 获取页面上所有图片的 URL
image_urls = []
for img in doc('img').items():
img_url = img.attr('src')
if img_url and not img_url.startswith('data:'):
# 如果图片 URL 不是以 'data:' 开头(即不是 base64 编码的图片),则加入列表
image_urls.append(img_url)
return image_urls
def write_image_urls_to_excel(image_urls, excel_filename):
# 创建一个新的工作簿
wb = Workbook()
# 激活默认的工作表
ws = wb.active
# 设置表头
ws.append(['Image URLs'])
# 将图片 URL 写入表格
for url in image_urls:
ws.append([url])
# 保存工作簿
wb.save(excel_filename)
if __name__ == '__main__':
url = 'https://www.xxx.com/'
image_urls = get_image_urls(url)
# 指定要保存到 D 盘的 Excel 文件路径
excel_filename = 'D:/img.xlsx'
write_image_urls_to_excel(image_urls, excel_filename)
二、运行结果
三、运行环境
Idea
四、代码解释
1. get_image_urls(url) 函数用来从指定 URL 获取页面内容,并使用 PyQuery 解析 HTML,提取所有图片的 URL。
2. write_image_urls_to_excel(image_urls, excel_filename) 函数用来将获取到的图片 URL 写入到 Excel 文件中。它创建一个新的工作簿,将图片 URL 写入到第一个工作表的第一列,并保存到指定的路径 excel_filename(这里指定为 D:/img.xlsx)。
3. 确保在运行代码之前,你已经安装了 pyquery 和 openpyxl 库,可以通过 pip install pyquery openpyxl 进行安装。如果使用Idea直接import下载就好,很方便
当你运行这段代码时,它将从指定的网页(https://www.xxx.com/)获取所有图片的 URL,并将这些 URL 写入到 D:/img.xlsx 文件中。
五、PyQuery优点
PyQuery 是一个非常方便的库,特别适合用于解析和操作 HTML/XML 文档。它的一些优点包括:
-
jQuery 风格的语法: PyQuery 的语法设计类似于 jQuery,对于熟悉 jQuery 的开发者来说,学习成本低,能够快速上手。
-
简洁而强大的选择器: PyQuery 提供了强大的选择器功能,可以通过类似于 CSS 选择器的语法来定位和操作文档中的元素,这使得处理和筛选文档元素变得非常便捷。
-
链式操作: 可以通过链式操作来依次进行多个操作,使得代码看起来更加清晰和紧凑。
-
支持批量操作: 可以方便地对文档中多个元素进行批量操作,例如批量获取属性、修改内容等。
-
强大的 DOM 操作能力: PyQuery 提供了丰富的 DOM 操作方法,包括增删改查等,使得处理 HTML/XML 文档变得非常灵活和高效。
-
支持链式筛选和遍历: 可以通过链式调用的方式来进行筛选和遍历文档元素,对于复杂的文档结构特别有帮助。
-
可扩展性和插件支持: PyQuery 可以通过插件扩展其功能,例如支持 XPath、CSS3 选择器等,满足更多特定的需求。
PyQuery 是处理和操作 HTML/XML 文档的一种高效、简洁的选择,特别适合需要进行数据提取、信息抽取或者简单页面解析的应用场景。