利用python提取excel中网页链接并下载对应网页

该代码段展示了一个使用Python的xlrd、selenium和正则表达式库来从Excel表格中提取网址,然后下载对应网页并保存为MHTML文件的过程。它首先读取Excel工作簿,对每个工作表,检查是否存在对应的文件夹,如果不存在则创建。接着,遍历单元格查找URL,用Chrome浏览器获取网页内容,并将其保存为MHTML格式。如果文件已存在,则跳过下载。

1.提取各个表链接

2.下载对应的网页并保存到对应的文件夹

小白,不保证准确性

import xlrd
import re
from jieba import xrange
from selenium import webdriver
import os


wb = xlrd.open_workbook('xxxx.xlsx')

p = wb.sheet_names()
obj = re.compile(r"https:/.*?\d+")

for y in p:
    print(y)
    base_dir = os.path.dirname(__file__)

    if os.path.exists(base_dir + '/' + y):
        print('exist')
    else:
        os.mkdir(base_dir + '/' + y)  # 创建
    sh = wb.sheet_by_name(y)
    sheet_data = []
    for rownum in xrange(sh.nrows):
        sheet_data.append((sh.row_values(rownum)))
        found_list = []
        rows_to_be_saved = []
        for i in sheet_data:
            for cell in i:
                ret = obj.finditer(str(cell))
                for it in ret:
                    # print(it.group())
                    # found_list.append(it.group())

                    filename = os.path.join(base_dir + '/' + y.strip(), re.search(r"\d+", it.group()).group() + '.mhtml')
                    if os.access(filename,os.F_OK):
                        print('Given file path is exist.')
                    else:
                        driver = webdriver.Chrome()
                        driver.get(it.group())
                    # 1. 执行 Chome 开发工具命令,得到mhtml内容
                        res = driver.execute_cdp_cmd('Page.captureSnapshot', {})

                    # 2. 写入文件

                        with open(filename, 'w', newline='') as f:
                            f.write(res['data'])
                        driver.quit()
                # result = obj.findall(str(cell))
                # print(result)
                # if cell.value == "string1" or i[2] == "string2" or i[2] == "string3" or i[2] == "string4" or i[2] == "string5":

            # else:

            # rows_to_be_saved.append(i)

print("over")

### 使用Python实现从Excel读取数据自动填写Web表单 为了完成这一任务,可以采用`openpyxl`库来操作Excel文档,利用Selenium这样的工具模拟浏览器行为以实现向网页提交信息的功能。下面具体介绍所需步骤以及代码实例。 #### 安装必要的软件包 首先需要确保环境中已经安装了所需的第三方库: 对于读写Excel文件的操作,可以通过命令 `pip install openpyxl -i https://pypi.douban.com/simple/` 来获取`openpyxl`模块[^1];而针对自动化控制浏览器的需求,则需额外引入`selenium`库,可通过执行`pip install selenium`来进行安装。 #### 编码实践 以下是具体的编码过程展示如何加载Excel中的数据通过网络请求的方式将其发送至目标网站的输入框内。 ```python from selenium import webdriver import time from openpyxl import load_workbook # 加载excel工作簿 wb = load_workbook('example.xlsx') ws = wb.active data_list = [] for row in ws.iter_rows(min_row=2, max_col=3, values_only=True): # 假设有效数据位于前两列 data_list.append(row) driver_path = 'path_to_chromedriver' # 需替换为本地chromedriver路径 browser = webdriver.Chrome(executable_path=driver_path) url = "http://example.com/form" # 替换成实际的目标网址 browser.get(url) time.sleep(2) # 给予页面一定时间加载完毕 for item in data_list: input_elements = browser.find_elements_by_tag_name('input')[:len(item)] # 获取所有<input>标签作为容器准备赋值 for index, element in enumerate(input_elements): element.send_keys(str(item[index])) submit_button = browser.find_element_by_css_selector('.submit-button-class') # 查找提交按钮对应的CSS选择器 submit_button.click() time.sleep(2) # 提交后等待下一次循环开始之前稍作停顿防止过快触发反爬虫机制 browser.quit() # 结束会话关闭浏览器窗口 ``` 这段脚本实现了打开指定URL地址所指向的HTML页面,在该页面上定位到应的文本域控件,依次填入来自Excel表格里的记录最后点击确认键完成整个流程。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值