为了账号安全,请及时绑定邮箱和手机立即绑定

同时尝试通过 Selenium 和 Python 使用 ChromeDriver Chrom

同时尝试通过 Selenium 和 Python 使用 ChromeDriver Chrom

慕哥9229398 2022-07-19 20:30:42
我正在制作一个简单的抓取程序。首先,用户会写下 a 的名字footballer,然后我会创建一个链接到transfermarkt.com网络搜索,然后我想输入第一个链接并从足球运动员的个人资料中抓取数据。不幸的是,我对硒有疑问。如何以编程方式进入网站并从网站上抓取数据?这是我的代码:from urllib.request import urlopenimport bs4from bs4 import BeautifulSoupfrom selenium import webdriverdata = 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)它只适用于 line print(search),但后来我迷路了。浏览器是打开的,但只有data:,在地址栏中。
查看完整描述

2 回答

?
慕田峪9158850

TA贡献1794条经验 获得超8个赞

您只需要无头浏览器:


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。


浏览器已打开,但地址栏中只有 data:,。


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


browser.get(source)


查看完整回答
反对 回复 2022-07-19
?
白衣染霜花

TA贡献1796条经验 获得超10个赞

看来你很接近了。它仅适用于该行print(search),因为尽管您已经构建了所需的 url,因为search您还没有调用get()传递 url。因此,您需要按如下方式传递 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:\WebDrivers\chromedriver.exe')

driver.get(search)

控制台输出:


Enter name: Kylian Mbappé

Kylian+Mbappé

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

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


谷歌浏览器未安装在预期的默认位置。

您使用的二进制文件版本之间不兼容。


查看完整回答
反对 回复 2022-07-19
  • 2 回答
  • 0 关注
  • 193 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号