我正在通过博彩网站刮擦数据(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库来解析。