[英]Python BeautifulSoup scraping web page that has protection
我是Python的新手。 我最近的項目是從網站獲取奇怪的信息。
這是網址:
http://bet.hkjc.com/default.aspx?url=football/odds/odds_allodds.aspx&lang=EN&tmatchid=120998
我正在使用Python和BeautifulSoup進行處理,通過html獲取時我看不到任何奇怪的數據
soup.prettify()
我從上面的代碼中得到的結果僅僅是邏輯代碼,變量和函數。 我認為頁面對數據有一定的保護
我應該怎么做才能從受保護的網頁中獲取奇數信息?
看起來它沒有受到保護,而是僅使用javascript生成。 而且beautifulsoup無法處理JS。 大多數人首先想到的解決方法是使用selenium之類的工具來自動化Web瀏覽器。 您可以使用它在JS運行后獲取html,然后根據需要使用beautifulsoup進行解析。
SuperStew發布的答案是正確的,但該頁面使用JavaScript加載了“ http://bet.hkjc.com/football/odds/odds_allodds.aspx?lang=EN&tmatchid=120998 ”,這是該頁面上具有賠率數據的頁面。 您沒有說明想要的賠率,但是下面的代碼是獲取某些數據的一種方法示例,如果您需要其他數據,則必須對其進行修改。
import bs4
import requests
url = "http://bet.hkjc.com/football/odds/odds_allodds.aspx?lang=EN&tmatchid=120998"
page = requests.get(url)
soup = bs4.BeautifulSoup(page.text,'lxml')
tOdds = soup.findAll('table', {'class':"tOdds"})
for tOdd in tOdds:
print (tOdd.text)
輸出:
Jong PSV Eindhoven(Home) Draw Jong Utrecht(Away) 1.53 4.00 4.60
Jong PSV Eindhoven(Home) Draw Jong Utrecht(Away) 1.97 2.45 4.70
Jong PSV Eindhoven[-1](Home) Draw Jong Utrecht[+1](Away) 2.45 3.60 2.26
Line High Low [3/3.5]2.021.70
Line High Low [1.5]2.191.60
1.44 18.00 2.65
0 1 2 3 4 5 6 7+ 18.00 6.60 4.10 3.65 4.50 6.70 11.00 14.00
Odd Even 1.90 1.80
H H H D D D A A A H D A H D A H D A 2.30 14.00 34.00 4.70 6.50 10.50 19.00 14.00 7.50
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.