因此,作為我一直試圖抓取的網(wǎng)站的序言,我似乎擁有/使用(我不確定與網(wǎng)絡(luò)開發(fā)等相關(guān)的行話)javascript代碼,并且我在嘗試抓取不同的表格時(shí)取得了不同的成功在不同的頁面上。例如在這個(gè)頁面上:http://www.tennisabstract.com/cgi-bin/player.cgi ?p=NovakDjokovic 我很容易就能“檢查元素”,然后找到Network腳本的正確“名稱”,然后找到我需要的請求 URL 來獲取我想要的表。我為此使用的代碼是:url = 'http://www.minorleaguesplits.com/tennisabstract/cgi-bin/frags/NovakDjokovic.js'content = requests.get(url)
soup = BeautifulSoup(content.text, 'html.parser')
table = soup.find('table', id='tour-years', attrs= {'class':'tablesorter'})
dfs = pd.read_html(str(table))
df = pd.concat(dfs)但是,現(xiàn)在當(dāng)我查看同一站點(diǎn)上的不同頁面時(shí),比如這個(gè)http://www.tennisabstract.com/charting/20190714-M-Wimbledon-F-Roger_Federer-Novak_Djokovic.html,我無法找到允許我最終獲得我想要的表的請求 URL。.js我重復(fù)了與上面相同的過程,但在具有該表的網(wǎng)絡(luò)選項(xiàng)卡下沒有腳本。當(dāng)我查看 html 元素時(shí),我確實(shí)看到了表格,但是如果沒有正確的 url,我當(dāng)然無法獲得它。所以我的問題是,如何從此頁面http://www.tennisabstract.com/charting/20190714-M-Wimbledon-F-Roger_Federer-Novak_Djokovic.html獲取表格?
1 回答

森欄
TA貢獻(xiàn)1810條經(jīng)驗(yàn) 獲得超5個(gè)贊
查看html頁面的源代碼,您可以看到所有數(shù)據(jù)都已經(jīng)加載到腳本標(biāo)簽中。您唯一需要的是提取變量值并將其加載到 beautifulsoup。
以下代碼給出了腳本標(biāo)簽中的所有變量和值
import requests, re
from bs4 import BeautifulSoup
res = requests.get("http://www.tennisabstract.com/charting/20190714-M-Wimbledon-F-Roger_Federer-Novak_Djokovic.html")
soup = BeautifulSoup(res.text, "lxml")
script = soup.find("script", attrs={"language":"JavaScript"}).text
var_only = script[:script.index("$(document)")].strip()
接下來,您可以使用正則表達(dá)式獲取變量值 - https://regex101.com/r/7cE85A/1
添加回答
舉報(bào)
0/150
提交
取消