【发布时间】:2016-09-28 08:57:22
【问题描述】:
我有一个带有分页器的网站。每个页面显示 32 个链接,我获取每个链接并将它们存储在文件夹中的单独文件中。我在 Python 中使用 Selenium 的 Firefox 驱动程序。
程序基本上是:
get the 32 elements
for element in elements:
open new file and save element
repeat
我正在监控每个周期所花费的时间。我从 4 秒开始,然后是 8 秒(当时我保存了 10000 个链接),现在花了 10 秒,我已经保存了 13000 个链接。
以前,我打开同一个文件并附加链接,这也减慢了周期,我猜是因为随着文件大小的增加,它必须在每个周期中加载并附加。
但现在我不知道是什么会减缓周期。转到下一页总是花费 3-4 秒,所以这不是问题的根源。什么可能会减慢周期?
这是循环:
while True:
propiedades = driver.find_elements_by_xpath("//*[@class='hlisting']")
info_propiedades = [propiedad.find_element_by_xpath(".//*[@class='propertyInfo item']")
for propiedad in propiedades]
for propiedad in info_propiedades:
try:
link = [l.get_attribute("href") for l in propiedad.find_elements_by_xpath(".//a")]
thelink = link[0]
id_ = thelink.split("id-")[-1]
with open(os.path.join(linkspath, id_), "w") as f:
f.write(link[0])
numlinks += 1
except:
print("link not found")
siguiente = driver.find_element_by_id("paginador_pagina_{0}".format(paginador))
siguiente.click() # goes to the next page
while new_active_page == old_active_page: # checks if page has loaded completely
try:
new_active_page = driver.find_element_by_class_name("pagina_activa").text
except:
new_active_page = old_active_page
time.sleep(0.3)
old_active_page = new_active_page
paginador += 1
【问题讨论】:
-
你能分享一个页面链接吗?我有一些想法,但如果我能测试它们会更容易。
-
@JeffC : 网站 = "metrocuadrado.com/web/inmuebles/venta"
标签: python selenium pagination