亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

使用 Javascript 元素抓取網頁

使用 Javascript 元素抓取網頁

江戶川亂折騰 2023-02-22 10:55:48
因此,作為我一直試圖抓取的網站的序言,我似乎擁有/使用(我不確定與網絡開發等相關的行話)javascript代碼,并且我在嘗試抓取不同的表格時取得了不同的成功在不同的頁面上。例如在這個頁面上: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)但是,現在當我查看同一站點上的不同頁面時,比如這個http://www.tennisabstract.com/charting/20190714-M-Wimbledon-F-Roger_Federer-Novak_Djokovic.html,我無法找到允許我最終獲得我想要的表的請求 URL。.js我重復了與上面相同的過程,但在具有該表的網絡選項卡下沒有腳本。當我查看 html 元素時,我確實看到了表格,但是如果沒有正確的 url,我當然無法獲得它。所以我的問題是,如何從此頁面http://www.tennisabstract.com/charting/20190714-M-Wimbledon-F-Roger_Federer-Novak_Djokovic.html獲取表格?
查看完整描述

1 回答

?
森欄

TA貢獻1810條經驗 獲得超5個贊

查看html頁面的源代碼,您可以看到所有數據都已經加載到腳本標簽中。您唯一需要的是提取變量值并將其加載到 beautifulsoup。


以下代碼給出了腳本標簽中的所有變量和值


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()

接下來,您可以使用正則表達式獲取變量值 - https://regex101.com/r/7cE85A/1


查看完整回答
反對 回復 2023-02-22
  • 1 回答
  • 0 關注
  • 93 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號