BeautifulSoup-使用Python通过分页表刮擦数据



我正在通过博彩网站刮擦数据(https://www.pointdevente.parionssport.fdj.fr/parisouverts/rugby)。

我可以在当前页面上刮擦有限数量的事件。我面临的问题是,我无法在表中的其余数据中刮擦。我如何转到下一页或链接。

以下是我的代码:

import urllib2
from urllib2 import urlopen
import requests
import dryscrape
from bs4 import BeautifulSoup
dryscrape.start_xvfb()
SessionFDJ = dryscrape.Session()
SessionFDJ.visit('https://pointdevente.parionssport.fdj.fr/parisouverts/rugby/')
ResponseFDJ = SessionFDJ.body()
print(ResponseFDJ)

此页面使用JavaScript获取所有数据并更改它。在Chrome/Firefox中使用DevTools查看浏览器使用了哪些文件/URL,您会看到

https://www.pointdevente.parionssport.fdj.fr/api/1n2/offre?sport=964500

将所有数据均为JSON

看来此页面使用API,因此可以找到API文档,您将不需要BeautifulSoup


import requests
url = 'https://www.pointdevente.parionssport.fdj.fr/api/1n2/offre?sport=964500'
r = requests.get(url)
for x in data:
    print(x['label'])

结果:

Biarritz-Perpignan
Kenya-France
Australie-Japon
Etats-Unis-Ecosse
Argentine-Pays de Galles
Angleterre-Samoa
Montauban-Colomiers
Bourgoin-Angoulême
Aurillac-Mt-de-Marsan
Dax-Albi
Vannes-Béziers
Ospreys-Edimbourg
Glasgow-Munster
Sale-Exeter
Bath-Saracens
Pau-Clermont
Zebre-Llanelli
Angleterre-Australie
Connacht-Trévise
Gloucester-Bristol
Leicester-Northampton
Cardiff-Ulster
Grenoble-Montpellier
Lyon-Castres
St.Français-Bayonne
Leinster-Newport
La Rochelle-Racing 92
Toulouse-Brive
Narbonne-Oyonnax
Worcester-Wasps
Newcastle-Harlequins
Toulon-Bordeaux
Fidji-Canada
NlleZélande-Russie
Agen-Carcassonne
AfriqueduSud-Ouganda

这是一个客户端渲染的应用程序,HTML中没有表信息,您可以通过Urllib获得。所有数据均通过JavaScript检索并渲染。这更容易,您不必解析html。

这是一个具有必要数据的链接-https://www.pointdevente.parionssport.fdj.fr/api/1n2/offre?sport=964500

它返回所有事件的JSON,您可以使用Python JSON库来解析。

最新更新