微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在不关闭url链接的情况下阅读多个网页

如何解决如何在不关闭url链接的情况下阅读多个网页

我在 Anaconda 中将 Pyhton 3.7 与 Spyder 一起使用。我对 Python 没有太多经验,所以我可能在问题描述中使用了错误的技术术语。

我使用 requests 库从具有网页界面的数据库中读取零件编号列表的过程数据。我使用以下代码。我在 StackOverflow 上找到了大部分内容

# Libraries
import requests
import pandas as pd
import lxml.html as LH

# Get link for part results from hyperlink list
for link in hyperlink_list:
    # Add part number to database link
    process_url = database_link + link
    html = requests.get(process_url).content
    # Read data to dataframe
    df_list = pd.read_html(html)

for 循环从超链接列表中获取一个零件编号的链接,然后修改 process_url 以提取该零件编号的数据。上面的代码运行良好,只是它花费的时间是我的 vba 代码的两倍多(2.2 秒)。看起来它会打开和关闭每个零件号的链接。有什么办法可以在关闭链接之前打开url链接并阅读许多不同的网页。

我假设它会打开和关闭每个部分的链接,因为当我使用 Excel vba 代码为每次读取数据打开和关闭 Internet Explorer 时,我有相同的时间延迟。当我更改 vba 代码以保持资源管理器打开并阅读所有网页时,花了不到一秒钟的时间。

解决方法

通过删除 requests.get(process_url).content,我设法将时间减少了 0.5 秒
并使用pandas直接读取df_list = pd.read_html(process_url)的数据。现在读取表中每个部分的 400 行数据大约需要 1.7 秒。当我必须读取数千个表但仍然比 vba 脚本慢时,这可以节省大量时间。下面是我的新代码

import pandas as pd
# Get link for part results from hyperlink list
for link in hyperlink_list:
   # Add part number to database link
   process_url = database_link + link
   df_list = pd.read_html(process_url)
   df = df_list[-1]

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。