python读取excel中的图片绝对链接,下载到本地

本文介绍了一款使用Python编写的工具,能够从Excel文件中批量下载图片链接,并将其保存到本地。通过解析Excel表格,该工具可以读取指定列的图片URL,按顺序下载并保存图片,同时显示下载进度。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

下载到excel中的图片,没办法直接查看,是一个链接地址,现在需要一个工具,将图片下载到本地,便于查看。
在这里插入图片描述
直接上python代码

import xlrd
import requests
import logging

a = xlrd.open_workbook('名单.xls', 'r')  # 打开.xlsx文件
sht = a.sheets()[0]  # 打开表格中第一个sheet
row1 = sht.row_values(1)

# 设置要下载的图片的范围,对应于 Excel 中的行数
start = 1
#获取excel
nrows = sht.nrows;

for i in range(start, nrows):
    url = sht.cell(i, 9).value  # 依次读取每行第十列的数据,也就是 URL
    if url:
        logging.info(url)
        f = requests.get(url)
        roadName=sht.cell(i,2).value
        markNo=sht.cell(i, 3).value
        ii = str(roadName)+"_"+markNo  # 按照下载顺序(行号)构造文件名

        url2 = url[-3:]  # 根据链接地址获取文件后缀,后缀有.jpg 和 .gif 两种
        dir = ii + "." + url2  # 构造完整文件名称

        with open(dir, "wb") as code:
            code.write(f.content)  # 保存文件
        print(url)  # 打印当前的 URL

        jindu = (i - start) / (nrows - start) * 100  # 计算下载进度
        print("下载进度:", jindu, "%")  # 显示下载进度
<think>好的,我需要帮助用户解决如何使用Python解析本地存储的HTML网页文件。首先,我得回忆一下相关的Python库和方法。用户提到了解析本地HTML,可能需要用到文件读取和HTML解析的库。 首先,用户需要读取本地HTML文件Python中处理文件通常使用内置的`open`函数。需要确保指定正确的文件路径和编码方式,比如UTF-8,这样可以避免乱码问题。引用[3]提到使用`with open('test.txt','w',encoding='utf-8')`,虽然例子是写文件,但读文件应该类似,用`'r'`模式。这部分应该没问题。 接下来是解析HTML的内容。常见的库有BeautifulSoup和lxml。引用[2]中提到了使用`etree.HTML()`将字符串转换为HTML对象,这里可能用的是lxml库的etree模块。BeautifulSoup也是一个流行的选择,用户可能更熟悉它。两种方法都需要安装对应的库,比如用`pip install beautifulsoup4`或`pip install lxml`。需要告诉用户如何安装这些依赖。 然后,解析后的数据提取。比如,用户可能想提取表格、链接或特定标签的内容。引用[1]提到从HTML提取字段到Excel,可能需要处理表格数据,比如使用pandas配合BeautifulSoup。提取数据后,可能需要保存到文件或数据库,引用[4]讨论了将JSON存入MySQL,但用户这里可能需要的是Excel或CSV。 最后,生成相关问题。需要确保问题与解析本地HTML相关,可能涉及性能优化、其他解析库、处理复杂结构或数据存储等。 现在需要将步骤结构化,分点说明,并确保代码示例正确。比如,先用`open`读取文件,然后用BeautifulSoup或lxml解析,再提取数据。同时,提醒用户注意文件路径和编码问题。可能还需要提到异常处理,比如文件不存在的错误处理,但用户的问题可能不需要太深入,先保持基础。 可能的问题点:用户可能不清楚如何选择解析库,或者遇到编码错误。需要指出常见问题和解决方法,比如指定正确的编码,处理不同的HTML结构。同时,引用[2]中的示例展示了使用`etree.HTML()`,但可能需要先读取文件内容,然后转换,这点需要明确。 总结步骤:1. 读取文件内容;2. 解析HTML;3. 提取数据;4. 存储结果。每个步骤给出代码示例,并解释关键点。最后生成相关问题,如其他解析方法、处理复杂元素、编码问题等。</think>### 如何用 Python 解析本地 HTML 网页文件 #### 步骤说明 1. **读取本地 HTML 文件** 使用 Python 内置的 `open` 函数读取文件内容,注意指定正确的编码(如 UTF-8)以避免乱码: ```python with open('example.html', 'r', encoding='utf-8') as file: html_content = file.read() ``` 2. **解析 HTML 内容** 可选择以下两种常用库: - **BeautifulSoup**(需安装 `beautifulsoup4` 和 `lxml`): ```python from bs4 import BeautifulSoup soup = BeautifulSoup(html_content, 'lxml') ``` - **lxml 的 etree**(需安装 `lxml`): ```python from lxml import etree html_tree = etree.HTML(html_content) ``` 3. **提取数据** 根据需求提取特定标签或结构。例如提取所有链接: ```python # 使用 BeautifulSoup links = [a['href'] for a in soup.find_all('a', href=True)] # 使用 lxml links = html_tree.xpath('//a/@href') ``` 4. **存储解析结果** 可将数据保存到 Excel 或数据库。例如使用 `pandas` 导出到 Excel: ```python import pandas as pd df = pd.DataFrame({'links': links}) df.to_excel('output.xlsx', index=False) ``` #### 完整示例代码 ```python # 读取文件 with open('example.html', 'r', encoding='utf-8') as file: html_content = file.read() # 解析并提取数据(以 BeautifulSoup 为例) from bs4 import BeautifulSoup soup = BeautifulSoup(html_content, 'lxml') titles = [h1.text for h1 in soup.find_all('h1')] # 输出结果 print("提取的标题:", titles) ``` #### 注意事项 - **文件路径**:确保路径正确,建议使用绝对路径。 - **编码问题**:若 HTML 文件编码非 UTF-8,需调整 `encoding` 参数。 - **依赖安装**:执行 `pip install beautifulsoup4 lxml pandas` 安装所需库。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

MonkeyKing.sun

对你有帮助的话,可以打赏

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值