Selenium (Python3) не перейдет на целевой URL после обновления Firefox - PullRequest
0 голосов
/ 19 марта 2019

Ниже приведено начало моего скребкового кода Python, который успешно извлекал данные весь прошлый год. Мой браузер FireFox (версия 65.0.2 64-bit) недавно обновился, и теперь код не будет напрямую переходить на целевой URL. Вместо этого он загружает FireFox и остается на пустой странице браузера до истечения времени ожидания кода. Я недавно загрузил свой пакет Selenium (версия 3.141.0) и попытался изменить set_preferences в коде, но я не смог решить эту проблему. Кто-нибудь знает, как решить эту проблему? Заранее спасибо!

import sys
import pandas as pd
import os
import time
from datetime import datetime
from selenium import webdriver
from selenium.webdriver.firefox.firefox_profile import FirefoxProfile
from sqlalchemy import create_engine


button_text_to_url_type = {
    'dashboard': 8,
    'standard': 0,
     'advanced': 1,
     'batted_ball': 2,
     'win_probability': 3,
     'pitch_type': 4,
     'pitch_values': 7,
     'plate_discipline': 5,
     'value': 6,
     'h_movement': 18,
     'v_movement': 19

}

download_dir = os.getcwd()
profile = FirefoxProfile("C:/Users/nhwal_000/AppData/Roaming/Mozilla/Firefox/Profiles/zd6yzhfi.FG_Scrape")
profile.set_preference("browser.helperApps.neverAsk.saveToDisk", 'text/csv')
profile.set_preference("browser.download.manager.showWhenStarting", False)
profile.set_preference("browser.download.dir", download_dir)
profile.set_preference("browser.download.folderList", 2)
driver = webdriver.Firefox(firefox_profile=profile)


today = datetime.today()
for button_text, url_type in button_text_to_url_type.items():

    default_filepath = os.path.join(download_dir, 'Fangraphs Leaderboard.csv')
    desired_filepath = os.path.join(download_dir,
                                    '{}_{}_{}_LeaderboardPIT_{}.csv'.format(datetime.today().year, today.month, today.day,
                                                                         button_text))

    driver.get(
        "https://www.fangraphs.com/leaders.aspx?pos=all&stats=pit&lg=all&qual=0&type={}&season=2018&month=0&season1=2018&ind=0&team=&rost=&age=&filter=&players=".format(
            url_type)) 

1 Ответ

1 голос
/ 19 марта 2019

Я не вижу ссылки на geckodriver, поэтому вам может потребоваться установить последнюю версию GeckoDriver

После установки вы можете добавить его путь к веб-драйверу, например:

driver = webdriver.Firefox(executable_path=r'your\path\to\geckodriver.exe', firefox_profile=profile)

И это должно бежать.

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