我目前正在循環訪問URL並在訪問/抓取網站時抓取數據。Python如何在「X」秒後超時/中止並繼續循環迭代
有時候,一個網站的加載時間過長,如果沒有錯誤,但不會完全加載,以允許chromedriver/urlopen完成/繼續使用腳本,只是停留在邊緣。
在這種情況下,動態測試元素的存在不起作用,因爲頁面不會完全加載,並且頁面對於固定元素(甚至不是豐富的標籤,如html或h1標籤等)的測試都不相同。
基本上我尋找一個代碼,將繼續下一個迭代循環「X」秒後,如果頁面dosent負荷
目前使用硒(chromedriver)和Beautifulsoup(BS4)。
def get_emails_from_list(links):
email=[]
for link in links:
driver.get(link)
html=driver.page_source
try:
raw = BeautifulSoup(html, 'html.parser').get_text()
emails = re.findall(r'[\w\.-][email protected][\w\.-]+', raw)
for em in emails:
if em not in email:
email.append(emails)
except:
emails = re.findall(r'[\w\.-][email protected][\w\.-]+', str(html))
for em in emails:
if em not in email:
email.append(emails)
try:
email2=list(itertools.chain(*email))
except:
email2=email
return email2
你嘗試過什麼內幕?人們會幫助,但他們不會爲你寫代碼。 – Marcs
我一直在尋找一個答案,在這一點上手動重新啓動和編輯列表。看了一下threading.timers,它真的適用於這個問題。我正在看信號包,不知道那個。看起來很有希望,但我完全不熟悉它。 –