[英]Using selenium in python to search email adresses and return information fails when no result
在python中使用硒創建一個腳本,該腳本遍歷電子郵件列表,將其粘貼到網頁的搜索欄中,並返回定義為csv文件的個人信息。
一切正常,但是只要一封電子郵件沒有給出任何搜索結果,我的腳本就會停止。 我試過嘗試,除了。 但這是行不通的。
編輯:我的腳本中的頁面是占位符,因為頁面即時抓取與公司相關/內部。
from selenium import webdriver
from selenium.common.exceptions import NoSuchElementException
import csv
import os
f = open('email_list.csv')
csv_f = csv.reader(f, delimiter=';')
email_list = []
for row in csv_f:
email_list.append(row[0])
f.close()
url = 'https://placeholderpage.com'
webdriver_path = os.path.abspath('./chromedriver_win32/chromedriver.exe')
options = webdriver.ChromeOptions()
options.add_argument('user-agent = Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2228.0 Safari/537.36')
driver = webdriver.Chrome(options=options, executable_path=webdriver_path)
f = open("DT_Output.csv", "w")
headers = "Name ; Department ; Company ; Address ; Phone ; Mobile ; Email ; Line Manager ; Manager Status ; Status ; OZT\n"
f.write(headers)
for emails in email_list:
try:
driver.implicitly_wait(2000)
driver.get(url)
python_button = driver.find_element_by_id('search').send_keys(emails)
driver.find_element_by_class_name('cst-query-btn').click()
namediv = driver.find_element_by_class_name('vcard-head')
name = namediv.find_element_by_class_name('name').text
department = driver.find_element_by_class_name('org-name-alt').text
company = driver.find_element_by_class_name('company').text
address = driver.find_element_by_class_name('location').text
phone = driver.find_element_by_class_name('telephone').text
mobile = driver.find_element_by_class_name('mobile').text
email = driver.find_element_by_class_name('email').text
line_manager = driver.find_element_by_class_name('linemanager').text
manager_status = driver.find_element_by_class_name('linemanager-status').text
status = driver.find_element_by_class_name('status').text
ozt = driver.find_element_by_class_name('ozt').text
f.write(name + ";" + department + ";" + company + ";" + address + ";" + phone + ";" + mobile + ";" + email + ";" + line_manager + ";" + manager_status + ";" + status + ";" + ozt + "\n")
except NoSuchElementException:
pass
f.close()
我認為這將幫助您在上面的代碼中為namediv對象設置條件。 如下所示:
如果namediv為None:
打印(“未找到“ +電子郵件的結果”)
出口(O)
即使您可以為沒有結果時出現的任何元素添加一個檢查,也更好。 相信您的代碼失敗,因為程序試圖從不存在的元素中檢索文本。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.