我正在通过将关键字(来自디지털가전.xlsx)放入网站(https://itemscout.io/keyword/)中来提取需求/供应/竞争力数据。问题是,如果由于超时异常而无法在此网站中分析关键字并且不显示任何需求/供应/竞争力数据,则它将停止运行。我希望它继续运行,即使它不显示任何数据。我该如何解决这个问题?
raise TimeoutException(message, screen, stacktrace)
selenium.common.exceptions.TimeoutException: Message:
这是存储关键字的文件 https://drive.google.com/file/d/1oKIXZWiw5WsazHBstKVT8UlgRSZfdx62/view excel文件的最后一列包含关键字
import xlrd
import pandas as pd
import xlrd
import pandas as pd
import numpy as np
from bs4 import BeautifulSoup
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import openpyxl
import time
from selenium.webdriver.support.ui import WebDriverWait
from selenium.common.exceptions import NoSuchElementException
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
from selenium.common.exceptions import TimeoutException
driver = webdriver.Chrome(executable_path=r"C:\Users\Kim woo jae\PycharmProjects\100개 키워드\chromedriver.exe")
list = []
list1 = []
list2 = []
list3 = []
driver.get("https://itemscout.io/keyword/")
wait = WebDriverWait(driver, 120)
b = wait.until(EC.visibility_of_element_located((By.XPATH, '//*[@id="container"]/div/div[2]/div/input')))
b.clear()
b.send_keys('화장대')
c = wait.until(EC.visibility_of_element_located((By.XPATH, '//*[@id="container"]/div/div[2]/div/span')))
c.click()
d = wait.until(EC.visibility_of_element_located((By.XPATH, '//*[@id="container"]/div/div[3]/div[2]/div[1]/div[1]/div[2]/div[2]/div/table/tbody'))).text
df = pd.read_excel(r'디지털가전.xlsx')
ky = df['키워드']
for k in ky:
b1 = wait.until(EC.visibility_of_element_located((By.XPATH, '//*[@id="container"]/div/div[2]/div/input')))
b1.clear()
b1.send_keys(k)
# c1 = wait.until(EC.visibility_of_element_located((By.XPATH, '//*[@id="container"]/div/div[2]/div/span')))
wait.until(EC.element_to_be_clickable((By.XPATH, '//*[@id="container"]/div/div[2]/div/span'))).click()
# c1.click()
time.sleep(2)
wait.until(EC.presence_of_element_located((By.XPATH, '//*[@id="container"]/div[1]/div[3]/div[2]/div[1]/div[1]/div[2]/div[2]/div/table/tbody/tr/td[2]/div')))
d1 = wait.until(EC.visibility_of_element_located((By.XPATH, '//*[@id="container"]/div/div[3]/div[2]/div[1]/div[1]/div[2]/div[2]/div/table/tbody'))).text
d1 = (d1).replace(',', '.')
d1 = ' '.join(d1.splitlines())
d1 = d1.replace(' ', ',')
result = [x.strip() for x in d1.split(',')]
d = [result[0]]
s = [result[1]]
c = [result[2]]
print([k],d,s,c)
for ks in [k]:
list.append(ks)
for ds in d:
list1.append(ds)
for ss in s:
list2.append(ss)
for cs in c:
list3.append(cs)
df["키워드 확인"] = list
df["총검색량"] = list1
df["공급량"] = list2
df["경쟁률"] = list3
df.to_excel("디지털가전 최종.xlsx")
答案 0 :(得分:1)
您可以将通话包装为try \ except:
for codes, x in enumerate(discount_codes):
discount_code = codes['x']['code']
discount_amount = codes['x']['amount']
print (discount_code)
print (discount_amount)