如何使用QQ收集表收青年大学习?

设置收集表

我设置的是名字+图片,然后将收集表导出为excel,得到这样的结果:
如何使用QQ收集表收青年大学习?_第1张图片

取消超链接显示的文字

在excel中创建宏:

Sub 超链接取消文字()
Dim HL As Hyperlink
For Each HL In ActiveSheet.Hyperlinks
HL.Range.Offset(0, 1).Value = HL.Address
Next
End Sub

执行后,超链接变成地址形式:
如何使用QQ收集表收青年大学习?_第2张图片

运行python程序

import urllib

import xlrd
import requests
import socket
import time
sleep_download_time = 1
try:
    a = xlrd.open_workbook('青年大学习收集表(收集结果).xlsx', 'r')  # 打开.xlsx文件
    headers = {
        'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.102 Safari/537.36'
    }

    sht = a.sheets()[0]  # 打开表格中第一个sheet
    row1 = sht.row_values(0)

    # 设置要下载的图片的范围,对应于 Excel 中的行数
    start = 1
    end = 27
    for i in range(start, end):
        url = sht.cell(i, 1).value  # 依次读取每行第三列的数据,也就是 URL
        time.sleep(sleep_download_time)
        f = requests.get(url,headers=headers)

        ii = str(i)  # 按照下载顺序(行号)构造文件名

        url2 = 'png'  # 根据链接地址获取文件后缀,后缀有.jpg 和 .gif 两种

        dir = ii + "." + url2  # 构造完整文件名称

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

        jindu = (i - start) / (end - start) * 100  # 计算下载进度
        print("下载进度:", jindu, "%")  # 显示下载进度
    f.close()
except UnicodeDecodeError as e:
    print('-----UnicodeDecodeError url:', url)
except urllib.error.URLError as e:
    print("-----urlError url:", url)
except socket.timeout as e:
    print("-----socket timout:", url)

引用自Python + Excel 实现图片批量下载

在这里插入图片描述
得到结果

你可能感兴趣的:(python)