gpt4 book ai didi

Python selenium webdriver 代码性能

转载 作者:太空宇宙 更新时间:2023-11-04 04:53:24 25 4
gpt4 key购买 nike

我正在使用 Python 中的 Selenium 抓取网页。我能够使用此代码找到元素:

from selenium import webdriver
import codecs

driver = webdriver.Chrome()
driver.get("url")
results_table=driver.find_elements_by_xpath('//*[@id="content"]/table[1]/tbody/tr')

results_table 中的每个元素又是一组子元素,子元素的数量因元素而异。我的目标是将每个元素作为列表或分隔字符串输出到输出文件中。到目前为止我的代码是这样的:

results_file=codecs.open(path+"results.txt","w","cp1252")

for element in enumerate(results_table):
element_fields=element.find_elements_by_xpath(".//*[text()][count(*)=0]")
element_list=[field.text for field in element_fields]
stuff_to_write='#'.join(element_list)+"\r\n"
results_file.write(stuff_to_write)
#print (i)
results_file.close()
driver.quit()

代码的第二部分大约需要 2.5 分钟处理一个包含约 400 个元素的列表,每个元素包含大约 10 个子元素。我得到了想要的输出,但它太慢了。我可以做些什么来提高性能?

使用 python 3.6

最佳答案

一次性下载整个页面,然后使用 BeautifulSoup 之类的工具对其进行处理。我有一段时间没有使用 splinter 或 selenium,但在 Splinter 中,.html 将为您提供页面。我不确定 Selenium 中的语法是什么,但应该有一种方法可以抓取整个页面。

Selenium(以及位于 Selenium 之上的 Splinter)随机访问网页内容的速度非常慢。看起来 .page_source 可能会给出 Selenium 页面的全部内容,我在 stackoverflow.com/questions/35486374/… 找到了它.如果一次一个地读取页面上的所有 block 会降低您的性能(而且可能确实如此),那么一次读取整个页面并离线处理它会更快。

关于Python selenium webdriver 代码性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47668840/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com