我使用以下代碼在搜索欄中插入代碼,單擊一個按鈕,最后提取一些資訊:
from selenium import webdriver
import time
from fake_useragent import UserAgent
url = 'https://www.ufficiocamerale.it/'
vat = '06655971007'
useragent = UserAgent()
profile = webdriver.FirefoxProfile()
profile.set_preference("general.useragent.override", useragent.random)
driver = webdriver.Firefox(profile)
driver.get(url)
time.sleep(5)
item = driver.find_element_by_xpath('//form[@id="formRicercaAzienda"]//input[@id="search_input"]')
item.send_keys(vat)
time.sleep(1)
button = driver.find_element_by_xpath('//form[@id="formRicercaAzienda"]//p//button[@type="submit"]')
button.click()
time.sleep(5)
all_items = driver.find_elements_by_xpath('//ul[@id="first-group"]/li')
for item in all_items:
if '@' in item.text:
print(item.text.split(' ')[1])
driver.close()
現在我想修改代碼以多次處理上述程序,這要歸功于 for 回圈,即:
from selenium import webdriver
import time
from fake_useragent import UserAgent
url = 'https://www.ufficiocamerale.it/'
vats = ['06655971007', '06655971007', '01010101010']
for vat in vats:
useragent = UserAgent()
# rest of the code
但它什么也沒做。我在哪里做錯了?是用戶代理的定義嗎?
uj5u.com熱心網友回復:
您能否更具體地說明“它什么都不做”?
沒有回圈的代碼作業正常嗎?*當在這個網站上測驗它時,對于“06655971007”作為輸入,它不會寫任何東西,因為在回傳的字串中沒有@
編輯
from selenium import webdriver
import time
#from fake_useragent import UserAgent
url = 'https://www.ufficiocamerale.it/'
vats = ['06655971007', '06655971007', '01010101010']
for vat in vats:
#useragent = UserAgent()
profile = webdriver.FirefoxProfile()
profile.set_preference("general.useragent.override", "useragent.random")
driver = webdriver.Chrome('./chromedriver.exe')
#driver = webdriver.Firefox(profile)
driver.get(url)
time.sleep(5)
item = driver.find_element_by_xpath('//form[@id="formRicercaAzienda"]//input[@id="search_input"]')
item.send_keys(vat)
time.sleep(1)
button = driver.find_element_by_xpath('//form[@id="formRicercaAzienda"]//p//button[@type="submit"]')
button.click()
time.sleep(5)
all_items = driver.find_elements_by_xpath('//ul[@id="first-group"]/li')
found_it = False
for item in all_items:
if '@' in item.text:
print(vat " = " item.text.split(' ')[1])
found_it = True
if not found_it:
print(vat " no email found")
driver.close()
輸出如下:
01010101010 no email found
08157270961 = [email protected]
06655971007 = [email protected]
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/436011.html
