【发布时间】:2019-06-06 23:22:54
【问题描述】:
我想用
解析表格id=standings-16548-grid
class=带有居中列悬停的网格
。不幸的是,当我尝试它时,输出显示我就像 tr 完全是空的。由于我是这种语言的新手,我想知道我是否遗漏了什么。
之后,我还将从工作表“表格”中刮取数据,而不仅仅是从工作表“排名”中,而且我正在尝试做一个步骤。
您可以在下面找到我的代码。
我已经尝试使用 selenium 来使用 Firefox 打开网页。然后,我尝试按下打开页面后立即显示的按钮以继续使用该网站。最后使用 BeautfulSoup 我尝试解析指定表 ID 的表。
'Python3.7'
from selenium import webdriver
from bs4 import BeautifulSoup
import requests
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as ec
driver = webdriver.Firefox(executable_path='/Applications/Python3.7/geckodriver')
driver.get('https://www.whoscored.com/Regions/108/Tournaments/5/Italy-Serie-A')
driver.implicitly_wait(20)
myDynamicElement = driver.find_element(By.XPATH, "/html/body/div[9]/div[1]/div/div/div[3]/button").click()
source = driver.execute_script("return document.documentElement.outerHTML")
soup = BeautifulSoup(source, 'lxml')
driver.quit()
table = soup.find('table', {"id":"standings-16548-grid"})
table_rows = table.find_all('tr')
for tr in table_rows:
td = tr.find_all('tr')
row = [i.text for i in td]
print(row)
这段代码的输出是:
Traceback (most recent call last):
File "/Users/Gina/PycharmProjects/Prova1/DriverProva/SeleniumScrape.py", line 12, in <module>
myDynamicElement = driver.find_element(By.XPATH, "/html/body/div[9]/div[1]/div/div/div[3]/button").click()
File "/Users/Gina/PycharmProjects/Prova1/venv/lib/python3.7/site-packages/selenium/webdriver/remote/webelement.py", line 80, in click
self._execute(Command.CLICK_ELEMENT)
File "/Users/Gina/PycharmProjects/Prova1/venv/lib/python3.7/site-packages/selenium/webdriver/remote/webelement.py", line 633, in _execute
return self._parent.execute(command, params)
File "/Users/Gina/PycharmProjects/Prova1/venv/lib/python3.7/site-packages/selenium/webdriver/remote/webdriver.py", line 321, in execute
self.error_handler.check_response(response)
File "/Users/Gina/PycharmProjects/Prova1/venv/lib/python3.7/site-packages/selenium/webdriver/remote/errorhandler.py", line 242, in check_response
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.ElementNotInteractableException:消息: 元素无法滚动到 查看
进程以退出代码 1 结束
【问题讨论】:
-
非常感谢您指出这一点。如果我想继续解析他们的数据,我将联系该网站并询问如何获得许可证。
标签: python-3.x selenium web-scraping beautifulsoup