Невозможно очистить таблицу от новой веб-страницы при выполнении ожидания веб-драйвера ... ошибка тайм-аута - PullRequest
0 голосов
/ 30 апреля 2020

Я пытался увеличить диапазон дат для таблицы, которая генерируется с веб-страницы, отличной от той, в которой я устанавливаю параметры (это то, как она настраивается, и я ничего не могу сделать, чтобы изменить это) , затем скопируйте его в текстовый или CSV-файл. Тем не менее, я всегда получаю эту ошибку тайм-аута, когда этот диапазон дат достигает 10 дней.

selenium.common.exceptions.TimeoutException: Message: timeout: Timed out receiving message from renderer: -0.001
  (Session info: chrome=81.0.4044.122)

В конечном итоге я хочу, чтобы этот набор данных превышал данные за 20 лет, но это будет Возьми навсегда, если я могу загружать только дни одновременно !!! Поэтому я пытался использовать явное ожидание от веб-драйвера, и я пытался использовать --headless, но я понятия не имею, правильно ли я использую любую из этих функций.

Что я могу представить это самое начало моего кода

from selenium import webdriver
#from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.common.exceptions import TimeoutException


from bs4 import BeautifulSoup
from urllib.request import urlopen
import pandas as pd
import requests
import os
import html5lib
import time


#Load webpage faster
chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument("--headless")

... и следующий код, когда я пытаюсь, чтобы мой код обращал внимание с одной веб-страницы на другую. '/html/body/p[2]/text()[2]' xpath - самый последний элемент на веб-странице, который я хотел бы загрузить полностью.

#Click Run Button From First Webpage
driver.find_element_by_partial_link_text('Run').click()
#time.sleep(2)
driver.implicitly_wait(2) 

#Scrape Second Web Page
driver.switch_to.window(driver.window_handles[1])
WebDriverWait(driver, 60).until(EC.visibility_of_element_located((By.XPATH, '/html/body/p[2]/text()[2]')))
df_url = driver.current_url

Я даже попытался By.CLASS_NAME = 'info' для хорошей меры.

Так что мои вопросы вот что ... как я могу использовать селен для загрузки большего набора данных? В частности, как мне лучше всего использовать явные ожидания от веб-драйвера или без заголовка для того, с чем я пытаюсь сейчас справиться (построение моего набора данных по крупицам с использованием данных каждые 10-15 дней)? Любая помощь действительно ценится.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...