#python #selenium #google-chrome
Вопрос:
когда я запускаю следующий код, тест переменной показывает как «Нетип», когда я использую элемент find, он выдает ошибку. я не понимаю, почему он неправильно вызывает веб-сайт. это работает в другом моем скрипте, я скопировал переменную test2 здесь, и она также не работает.
import weslib as wl
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.chrome.service import Service
#define web drivers
opt = webdriver.ChromeOptions()
opt.add_argument('headless')
opt.add_argument('--ignore-certificate-errors')
opt.set_capability("acceptInsecureCerts", True)
serv = Service("d:webdriverschromedriver")
driver = webdriver.Chrome(service=serv,options=opt)
tickerlist = ['AAPL']
for stock in tickerlist:
try:
stockurl = 'http://www.finviz.com/quote.ashx?t=' str(stock)
test = driver.get(stockurl)
test2 = driver.get('https://www.zacks.com/stock/quote/' stock[0] '/detailed-estimates')
fvstats = wl.scrapetable(stockurl, '/html/body/div[8]/div/table[2]', driver)
fvanalyses = wl.scrapetable(stockurl, '/html/body/div[8]/div/table[3]/tbody/tr[4]/td/table/tbody', driver)
fvinsidertrading = wl.scrapetable(stockurl, '/html/body/div[8]/div/table[3]/tbody/tr[12]/td/table/tbody', driver)
wl.insert_values(conn, fvstats, 'stats', stock[0], 'finviz1')
wl.insert_values(conn, fvanalyses, 'analyses', stock[0], 'finviz2')
wl.insert_values(conn, fvinsidertrading, 'insidertrading', stock[0], 'finviz3')
except (Exception) as error:
print('finviz', stock[0],'', str(error))
wl.joblog('finviz', stock[0],'', str(error))
continue
Комментарии:
1. я уже пришел к выводу, что веб-страница возвращает пустой html. я думаю, это потому, что они блокируют соскоба на основании пользовательского агента (который я прочитал здесь: medium.datadriveninvestor.com/… ), я попытался установить пользовательский агент : водитель.сеть execute_cdp_cmd (‘.setUserAgentOverride’, {«Ашераденс»: ‘браузере Mozilla/5.0 (окнах NT 10.0; Win64 в; для x64) AppleWebKit/537.36 (от KHTML, как геккон) хромовое/83.0.4103.97 браузере Safari/537.36’}) но это не кажется, чтобы решить проблему. у кого — нибудь есть какие-нибудь идеи?