如何从标签命名节中提取数据

时间:2019-07-13 11:33:34

标签: python web-scraping

我正在尝试从html page中提取一些数据(奇数)。

数据包含在代表表格的标签<section class="event-list">中。

我的问题是,当我尝试提取此标签时,我以None作为答案,而我希望获得所有包含在名为<section>的标签中的数据。

#!/usr/bin/python3
# -*- coding: utf­-8 ­-*-

import requests
from bs4 import BeautifulSoup
import csv

#Import htlm from winamax for soccer
winamax_soccer_datas = requests.get('https://www.winamax.fr/paris-sportifs/sports/1/')  

contenu_winamax_soccer_datas = BeautifulSoup(winamax_soccer_datas.content, 'lxml')  
title = contenu_winamax_soccer_datas.title
print(title); print("\n")

winamax_soccer_odds = contenu_winamax_soccer_datas.find('section', attrs={'class': "event-list"})
print(winamax_soccer_odds)

2 个答案:

答案 0 :(得分:0)

您知道,网页内的内容会生成静态或/和动态。当您在网络浏览器(例如chrome)中使用查看页面源文件选项时,您只会获得用于创建页面的原始HTML ,而不是表格内容产生动态。
当您使用request.get()时,会得到静态HTML内容,并且<section class="event-list">会动态生成,因此结果为None

我希望它可以帮助您:)

答案 1 :(得分:0)

您知道PHP吗?如果是,则可以使用此包将代码导入DOM,然后提取数据https://github.com/samacs/simple_html_dom

您的案例示例:

include('simple_html_dom.php');
$data = '<section class="event-list">';
$html = str_get_html($data);    
foreach($html->find('section') as $e){
    $classname = $e->class;
}