В адресной строке отображаются данные :, при попытке очистки с помощью ChromeDriver Chrome через Selenium и Python - PullRequest
1 голос
/ 04 февраля 2020

Я делаю простую программу очистки.

Сначала пользователь напишет имя footballer, затем я сделаю ссылку на transfermarkt.com веб-поиск, а затем я хотел бы ввести первую ссылку и удалить данные из профиля футболиста. , К сожалению, у меня проблема с селеном. Как мне войти на сайт программно и удалить данные с сайта?

Вот мой код:

from urllib.request import urlopen
import bs4
from bs4 import BeautifulSoup
from selenium import webdriver

data = input('Enter name: ')
data = data.replace(" ", "+")
print(data)
link = 'https://www.transfermarkt.pl/schnellsuche/ergebnis/schnellsuche?query='
search = link + data + '&x=0&y=0'
print(search)
driver = webdriver.Chrome("/usr/lib/chromium-browser/chromedriver")
driver.find_element_by_css_selector('.spielprofil_tooltip tooltipstered').click()
name_box = soup.find('h1', attrs={'class': 'dataValue'})
print(name_box)

Работает только на строку print(search), но тогда я потерялся. Браузер открыт, но в адресной строке есть только data:,.

Ответы [ 2 ]

0 голосов
/ 04 февраля 2020

Кажется, вы были близки. Он работает только со строкой print(search), потому что, хотя вы создали желаемый URL-адрес как search, вы не вызвали get(), передавая URL-адрес. Поэтому вам нужно передать URL следующим образом:

Теперь для просмотра текста data:, в адресной строке могут быть разные причины. Трассировка стека ошибок помогла бы нам лучше отладить проблему. Однако в большинстве случаев эта ошибка вызвана одной из следующих проблем:

  • не установлен в ожидаемом местоположении по умолчанию.
  • Несовместимость между версиями используемых вами двоичных файлов.

Ссылка

Подробное обсуждение можно найти в:

0 голосов
/ 04 февраля 2020

Это необходимо только для браузера без головы:

from selenium import webdriver
#####
from selenium.webdriver.chrome.options import Options

options = Options()
options.add_argument('--headless')
options.add_argument('--disable-gpu') 
driver = webdriver.Chrome("/usr/lib/chromium-browser/chromedriver", options=options)

Но, как я уже сказал, вам не нужно использовать селен здесь. Используйте селен, когда вы не можете использовать запросы или просто хотите быстро написать свой код.

Браузер открыт, но в адресной строке есть только данные: *.

Поскольку вы не получили URL в браузере:

browser.get(source)
...