BS4中的迭代在web废料中失败

2024-10-02 08:17:31 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用BeautifulSoup4从一个全种族灰狗会议(英国)中搜集数据。 http://www.gbgb.org.uk/resultsMeeting.aspx?id=135549 每场比赛通常有9到14场比赛会议。会议下面的代码遍历卡上的每个竞赛(事件),并将数据打印到屏幕(PyCharm Python v3)。问题是BS没有完成迭代,通常会在卡上的竞赛(事件)7或8左右失败,有时会在游戏进行到一半时崩溃只得到一半时间的数据跑步者。还有在某些情况下,我会收到一条标准消息“Process finished with exit code 0”(进程已完成,退出代码为0),我确实认为这可能与Url暂时不可用有关,但不寻常的是,该程序似乎总是在第7或8场比赛前后默认设置。我已经搜索了源代码代码的各个页面,可以看到没有不一致的代码(承认,我不是太熟悉的HTML)任何建议感谢。你知道吗

 from urllib import urlopen
 from bs4 import BeautifulSoup
 baseURL = 'http://www.gbgb.org.uk/resultsMeeting.aspx?id=135549'
 html = urlopen(baseURL)
 bsObj = BeautifulSoup(html, 'lxml')

 nameList = bsObj.findAll("div", {"class": "resultsBlockHeader"})
 for i in nameList:


     nameList1 = i.findAll("div", {"class": "track"})
     for j in nameList1:
         print(j.get_text())

     nameList1 = i.findAll("div", {"class": "date"})
     for j in nameList1:
         print(j.get_text())

     nameList1 = i.findAll("div", {"class": "datetime"})
     for j in nameList1:
         print(j.get_text())

     nameList1 = i.findAll("div", {"class": "grade"})
     for j in nameList1:
        print(j.get_text())

    nameList1 = i.findAll("div", {"class": "distance"})
    for j in nameList1:
        print(j.get_text())

    nameList1 = i.findAll("div", {"class": "prizes"})
    for j in nameList1:
        print(j.get_text())

nameList = bsObj.findAll("div", {"class": "resultsBlock"})
for i in nameList:

    nameList2 = i.findAll("li", {"class": "trap"})
    for j in nameList2:
        print(j.get_text())

    nameList2 = i.findAll("li", {"class": "first essential fin"})
    for j in nameList2:
        print(j.get_text())

    nameList2 = i.findAll("li", {"class": "essential greyhound"})
    for j in nameList2:
        print(j.get_text())

    nameList2 = i.findAll("li", {"class": "sp"})
    for j in nameList2:
        print(j.get_text())

    nameList2 = i.findAll("li", {"class": "timeSec"})
    for j in nameList2:
        print(j.get_text())

    nameList2 = i.findAll("li", {"class": "timeDistance"})
    for j in nameList2:
        print(j.get_text())

Tags: 数据代码textindivforgetli

热门问题