Javascript Python BeautifulSoup具有保护功能的抓取网页
我是Python新手。我最近的项目是从一个网站上获取奇怪的信息 以下是网址: 我正在使用Python和BeautifulSoup进行处理,在获取html时,我看不到任何奇怪的数据Javascript Python BeautifulSoup具有保护功能的抓取网页,javascript,python,html,parsing,beautifulsoup,Javascript,Python,Html,Parsing,Beautifulsoup,我是Python新手。我最近的项目是从一个网站上获取奇怪的信息 以下是网址: 我正在使用Python和BeautifulSoup进行处理,在获取html时,我看不到任何奇怪的数据 soup.prettify() 我从上面的代码得到的结果只是逻辑代码、变量和函数。我认为这个页面对数据有一些保护 如何从受保护的网页中获取奇怪的信息?看起来它没有受到保护,只是用javascript生成的。而beautifulsoup无法处理JS。大多数人的第一项工作是使用类似的工具自动化web浏览器。您可以在JS
soup.prettify()
我从上面的代码得到的结果只是逻辑代码、变量和函数。我认为这个页面对数据有一些保护
如何从受保护的网页中获取奇怪的信息?看起来它没有受到保护,只是用javascript生成的。而beautifulsoup无法处理JS。大多数人的第一项工作是使用类似的工具自动化web浏览器。您可以在JS运行后使用它获取html,然后根据需要使用beautifulsoup进行解析 它看起来没有受到保护,只是用javascript生成的。而beautifulsoup无法处理JS。大多数人的第一项工作是使用类似的工具自动化web浏览器。您可以在JS运行后使用它获取html,然后根据需要使用beautifulsoup进行解析 Supersew发布的答案是正确的,但该页面使用JavaScript加载“”,该页面包含赔率数据。您没有说明您想要的几率,但下面的代码是一个示例,说明了获取某些数据的一种方法,如果您想要其他数据,则必须对其进行修改
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
Supersew发布的答案是正确的,但该页面使用JavaScript加载“”,该页面包含赔率数据。您没有说明您想要的几率,但下面的代码是一个示例,说明了获取某些数据的一种方法,如果您想要其他数据,则必须对其进行修改
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
在“oddsAll”类的第一行,有一个javascript分类器,因此Supersew应该使用seleniumin正确在“oddsAll”类的第一行,有一个javascript分类器,因此Supersew应该使用seleniumI正确在使用javascript呈现页面之前始终查找包含我想要的数据的源文件,查看我对这个问题的回答。在使用JavaScript呈现页面之前,我总是查找包含所需数据的源文件,请参阅我对这个问题的回答。