我写了一个用于网络抓取的脚本。它从网站读取数据并保存到excel文件中。但是,我不知道为什么我的脚本运行得很慢。知道如何解决吗?我花了几个小时才能完成网页抓取。 :(
我的脚本中将数据写入excel的部分:
for Rows in soup:
nCol = 1
nRow = nRow + 1
for Columns in Rows.findAll('div'):
data = Columns.text
nFound = data.find(':') + 1
data = data[nFound:].strip()
print(data)
ws.cell(row=nRow, column=nCol).value = data
nCol = nCol + 1
性能问题可能在许多不同的部分。您可以在应用程序中添加一些时间检查,以查看花费了很多时间。
例如
from datetime import datetime
start_datetime = datetime.now()
#do something in your code
diff_datetime = datetime.now() = start_datetime
print(diff_datetime)
#do something else
diff_datetime = datetime.now() = start_datetime
print(diff_datetime)
.....
如果事实证明您的问题与openpyxl有关。您可以尝试将您的工作簿创建为只写。这是openpyxl中的优化,应该有助于加快速度。另外,如果您安装了lxml,openpyxl的执行速度也会更快。以下链接详细说明了有关openpyxl的写优化。测试一下,看看它是否适合您的应用程序。
https://openpyxl.readthedocs.io/en/stable/optimized.html#write-only-mode