地址栏显示数据:,同时尝试通过Selenium和Python使用ChromeDriver Chrome进行抓取



我正在制作一个简单的抓取程序。

首先,用户将写一个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:,

对于无头浏览器,您只需要它:

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)

但正如我所说,你不需要在这里使用硒。当您无法使用请求或只想快速编写代码时,请使用 selenium。

浏览器已打开,但只有数据:,在 地址栏。

因为您没有在浏览器中获取网址:

browser.get(source)

看来你很接近。它仅适用于行print(search),因为尽管您已经构造了所需的 urlsearch但您还没有在传递 urlget()调用。因此,您需要按如下方式传递 url:

  • 代码块:

    options = webdriver.ChromeOptions() 
    options.add_argument("start-maximized")
    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(options=options, executable_path=r'C:WebDriverschromedriver.exe')
    driver.get(search)
    
  • 控制台输出:

    Enter name: Kylian Mbappé
    Kylian+Mbappé
    https://www.transfermarkt.pl/schnellsuche/ergebnis/schnellsuche?query=Kylian+Mbappé&x=0&y=0
    

现在,在地址栏中查看文本数据:背后可能有多种原因。错误堆栈跟踪将帮助我们以更好的方式调试问题。但是,在大多数情况下,此错误是由于以下任一问题造成的:

  • 谷歌浏览器未安装在预期的默认位置。
  • 您使用的二进制文件版本之间不兼容

参考

您可以在以下位置找到详细的讨论:

  • Selenium 不会打开指定的 URL 并显示数据:

相关内容

  • 没有找到相关文章

最新更新