我正在尝试使用python和BeautifulSoup刮擦仅在页面上的菜单中单击时在代码中可见的表。
我可以抓取在首次打开页面时默认可见的表。因此,我尝试使用id或页面调用来尝试相同的技术,但无法获取文本。这是页面(您可以通过表格顶部的菜单选择视图):
https://www.tabtouch.com.au/racing/2018-12-26/mr/1。
我对“字段”视图感兴趣。这是我的代码:
from urllib.request import urlopen
from bs4 import BeautifulSoup
html = urlopen("https://www.tabtouch.com.au/racing/2018-12-26/mr/1")
soup = BeautifulSoup(html, "lxml")
mytable = soup.find('table', {'id': 'client-side-view'})
thetable = mytable.text
print(thetable)
使用'table', {'id': 'race-results'}
(打开页面时可以看到的表格),它可以很好地工作。可以通过页面顶部的查看菜单访问所需的表,单击“字段”以查看它。
我希望得到报废比赛结果表的结果。
答案 0 :(得分:0)
我将使用Selenium来单击这些菜单中的单击:
from selenium import webdriver
from selenium.webdriver.common.by import By
import bs4
import pandas as pd
url = "https://www.tabtouch.com.au/racing/2018-12-26/mr/1"
driver = webdriver.Chrome()
driver.get(url)
driver.find_element(By.XPATH, '//*[@id="race-results"]/thead/tr[1]/th[1]/race-betting-menu/div/p/a').click()
driver.find_element(By.XPATH, '//*[@id="race-results"]/thead/tr[1]/th[1]/race-betting-menu/div/ul/li[2]/a').click()
html = driver.page_source
soup = bs4.BeautifulSoup(html, "html.parser")
mytable = soup.find('table', {'id': 'client-side-view'})
thetable = mytable.text
print(thetable)