BeautifulSoup - 使用Python

时间:2016-12-01 10:07:42

标签: python pagination beautifulsoup

我正在通过博彩网站抓取数据 (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)

2 个答案:

答案 0 :(得分:0)

此页面使用JavaScript获取所有数据并进行更改。使用DevTools中的Chrome/Firefox查看浏览器使用的文件/网址,您会看到

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

答案 1 :(得分:0)

这是一个客户端呈现的应用程序,您可以通过urllib获取HTML中的表信息。使用Javascript检索和呈现所有数据。它更容易,您不必解析HTML。

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

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