我的情況是這樣的:我使用Selenium Webdriver來抓取一個網頁,首先它獲得了total_page_items,這很容易,因爲頁面頂部有一個數字框。暫停Python for Loop一天
我想要知道的是每天只與200個這些項目進行交互。 比方說,這個頁面有500萬個項目,我如何去點擊這些項目中的200個,可能將按鈕狀態保存到列表中,然後第二天繼續下一個200項目? 我知道計時功能以及如何在特定時間每天運行腳本,但我不知道如何從那裏移動。這是我會使用嵌套循環的情況嗎?
下面是for循環,我到目前爲止,我希望這是有道理的
daily_items = 200
counter = 0
ButtonXpathList = [
"//div[@id='content']/div/div/div[2]/div/div/ul/li[",
1,
"]/div/div[3]/button [contains(text(), 'Click')]"
]
for i in range(0, daily_items):
ButtonXpathList[1] = ButtonXpathList[1] + (1) #Counts up the string
ButtonXpathString = "".join(str(x) for x in ButtonXpathList)
ButtonElement = WebDriverWait(driver, 15).until(EC.presence_of_element_located((By.XPATH, (ButtonXpathString))))
action.move_to_element(ButtonElement)
if "Click" in ButtonXpathString: # and ButtonElement.is_displayed():
ButtonElement.click()
counter += 1
print counter, "New Buttons Clicked"
else:
driver.execute_script("return arguments[0].scrollIntoView();", ButtonElement)
time.sleep(2)
if ButtonXpathList[1] == total_page_items:
print "You're done here"
我不會繼續腳本運行,並暫停了一天。我可能會將這些項目寫入一個文件,然後每天運行一個腳本,從該文件中提取200個項目並執行任何操作。你意識到如果你有5M物品,每天做200個,你說的是68.5年來完成這個任務,對吧? :) – JeffC
謝謝傑夫,我錯過了你的文章,但我也想出了這個更聰明的方法。我現在成功地寫作和閱讀紡織品,它完美的作品!大約68.5歲,我還年輕,不急着! – jorvd