Python 用漂亮的汤取统计数据

Python 用漂亮的汤取统计数据,python,web-scraping,html-parsing,beautifulsoup,Python,Web Scraping,Html Parsing,Beautifulsoup,我正在使用此页面: 获取右侧给出的统计信息。我在下面附上了一个屏幕截图 我使用了以下函数来获取数据。我已经创建了soup并将其作为参数传递给下面的函数 def fetchStats(soup): for i in soup.findAll("div", {"class" : "module", "id" : "season-stats"}): for index in i.findAll("div", {"class" : "module-content"}):

我正在使用此页面:

获取右侧给出的统计信息。我在下面附上了一个屏幕截图

我使用了以下函数来获取数据。我已经创建了soup并将其作为参数传递给下面的函数

def fetchStats(soup):

    for i in soup.findAll("div", {"class" : "module", "id" : "season-stats"}):
        for index in i.findAll("div", {"class" : "module-content"}):
            for item in index.findAll("ul", style=False):

                li = item.findAll("li", {"class" : "major"})
                 print item.getText()
            break
        break
但它并没有像我想要的那样工作。我需要将团队的所有参数存储在一个字典中,字典的键中是团队名称,它的值有两个成员的元组-参数名称和它的值,如

dic = {"Team 1 Name": [("Disposlas",311), ("Kicks", 190) .....], "Team 2 Name" : [("Disposlas",315), ("Kicks", 224) .....]}

请帮帮我。

我们的想法是获取所有主队统计数据、客队统计数据和统计数据名称,并将它们放在单独的列表中,然后:

印刷品:

{u'Carlton': [(u'Disposals', u'315'),
              (u'Kicks', u'224'),
              (u'Handballs', u'91'),
              (u'Free Kicks', u'22'),
              (u'Clearances', u'39'),
              (u'Centre', u'13'),
              (u'Stoppages', u'26'),
              (u'Inside 50', u'40'),
              (u'Marks in 50', u'8'),
              (u'Contested Possessions', u'127'),
              (u'Tackles', u'59'),
              (u'Hit-Outs', u'23'),
              (u'Interchanges', u'111')],
 u'Fremantle': [(u'Disposals', u'311'),
                (u'Kicks', u'190'),
                (u'Handballs', u'121'),
                (u'Free Kicks', u'14'),
                (u'Clearances', u'38'),
                (u'Centre', u'10'),
                (u'Stoppages', u'28'),
                (u'Inside 50', u'47'),
                (u'Marks in 50', u'13'),
                (u'Contested Possessions', u'124'),
                (u'Tackles', u'63'),
                (u'Hit-Outs', u'75'),
                (u'Interchanges', u'96')]}

仅供参考,您可以在此处阅读有关这些
select()
调用的更多信息:。

您可能应该发布HTML。查看链接,它们是3个无序列表(UL元素)。我会把这三个都放到数组中,然后把它们合并成一个。非常感谢,先生,这非常有用。我还学会了如何使用bs4。谢谢again@Anand我很喜欢写它,谢谢你做了一个有趣的任务:)@Anand谢谢,请确保你理解代码中的所有内容。否则就没什么用了。先生,老实说,我能理解你给我的90%的密码。我需要时间,想学习
zip
。如果我有问题,我会好好学习并写在这里。你用了
ul#主队统计数据>li
,我也要研究一下
{u'Carlton': [(u'Disposals', u'315'),
              (u'Kicks', u'224'),
              (u'Handballs', u'91'),
              (u'Free Kicks', u'22'),
              (u'Clearances', u'39'),
              (u'Centre', u'13'),
              (u'Stoppages', u'26'),
              (u'Inside 50', u'40'),
              (u'Marks in 50', u'8'),
              (u'Contested Possessions', u'127'),
              (u'Tackles', u'59'),
              (u'Hit-Outs', u'23'),
              (u'Interchanges', u'111')],
 u'Fremantle': [(u'Disposals', u'311'),
                (u'Kicks', u'190'),
                (u'Handballs', u'121'),
                (u'Free Kicks', u'14'),
                (u'Clearances', u'38'),
                (u'Centre', u'10'),
                (u'Stoppages', u'28'),
                (u'Inside 50', u'47'),
                (u'Marks in 50', u'13'),
                (u'Contested Possessions', u'124'),
                (u'Tackles', u'63'),
                (u'Hit-Outs', u'75'),
                (u'Interchanges', u'96')]}