Python 漂亮的汤在URL中循环并显示数据

Python 漂亮的汤在URL中循环并显示数据,python,web,web-scraping,beautifulsoup,Python,Web,Web Scraping,Beautifulsoup,我正在使用美丽的汤刮这个网址 它可以根据需要显示所有字段。但是它在赛程结果卡上只显示一场比赛,我想提取整个比赛会议,在卡上的9场到14场比赛之间。这里是整个比赛的Url。 有没有什么方法可以让我循环浏览完整的比赛卡片,并在卡片上显示所有比赛的内容。下面是一场比赛的代码 from urllib import urlopen from bs4 import BeautifulSoup html = urlopen("http://www.gbgb.org.uk/resultsRace.aspx?

我正在使用美丽的汤刮这个网址 它可以根据需要显示所有字段。但是它在赛程结果卡上只显示一场比赛,我想提取整个比赛会议,在卡上的9场到14场比赛之间。这里是整个比赛的Url。 有没有什么方法可以让我循环浏览完整的比赛卡片,并在卡片上显示所有比赛的内容。下面是一场比赛的代码

 from urllib import urlopen

from bs4 import BeautifulSoup
html = urlopen("http://www.gbgb.org.uk/resultsRace.aspx?id=1839041")

bsObj = BeautifulSoup(html)
nameList = bsObj. findAll("div", {"class": "track"})
for name in nameList:
 print(name. get_text())

nameList = bsObj. findAll("div", {"class": "date"})
for name in nameList:
 print(name. get_text())

nameList = bsObj. findAll("div", {"class": "datetime"})
for name in nameList:
 print(name. get_text())
nameList = bsObj. findAll("div", {"class": "grade"})
for name in nameList:
 print(name. get_text())
nameList = bsObj. findAll("div", {"class": "distance"})
for name in nameList:
 print(name. get_text())
nameList = bsObj. findAll("div", {"class": "prizes"})
for name in nameList:
 print(name. get_text())
nameList = bsObj. findAll("li", {"class": "first essential fin"}) 
for name in nameList:
 print(name. get_text())
nameList = bsObj. findAll("li", {"class": "essential greyhound"})
for name in nameList:
 print(name. get_text())
nameList = bsObj. findAll("li", {"class": "trap"})
for name in nameList:
 print(name. get_text())
nameList = bsObj. findAll("li", {"class": "sp"})
for name in nameList:
 print(name. get_text())
nameList = bsObj. findAll("li", {"class": "timeSec"})
for name in nameList:
 print(name. get_text())
nameList = bsObj. findAll("li", {"class": "timeDistance"})
for name in nameList:
 print(name. get_text())
nameList = bsObj. findAll("li", {"class": "essential trainer"})
for name in nameList:
 print(name. get_text())
nameList = bsObj. findAll("li", {"class": "first essential comment"})
for name in nameList:
 print(name. get_text())
nameList = bsObj. findAll("div", {"class": "resultsBlockFooter"})
for name in nameList:
 print(name. get_text())

您只需迭代结果块。标签略有不同,但本质上是一样的。我在Chrome中使用了inspect元素特性,使得HTML的抓取变得容易

from urllib import urlopen

from bs4 import BeautifulSoup
baseURL = 'http://www.gbgb.org.uk/resultsMeeting.aspx?id=135488'
html = urlopen(baseURL)
bsObj = BeautifulSoup(html, 'lxml')
nameList = bsObj.findAll("div", {"class": "resultsBlock"})
for i in nameList:
    # just the trap info, the rest is similar
    nameList2 = i.findAll("li", {"class": "trap"})
    for j in nameList2:
        print(j.get_text())

您只需迭代结果块。标签略有不同,但本质上是一样的。我在Chrome中使用了inspect元素特性,使得HTML的抓取变得容易

from urllib import urlopen

from bs4 import BeautifulSoup
baseURL = 'http://www.gbgb.org.uk/resultsMeeting.aspx?id=135488'
html = urlopen(baseURL)
bsObj = BeautifulSoup(html, 'lxml')
nameList = bsObj.findAll("div", {"class": "resultsBlock"})
for i in nameList:
    # just the trap info, the rest is similar
    nameList2 = i.findAll("li", {"class": "trap"})
    for j in nameList2:
        print(j.get_text())

请您将我的答案标记为正确,或评论如何改进它。请您将我的答案标记为正确,或评论如何改进它。嗨,ncfirth,非常感谢您的回复。尽管我遇到了一些问题。按照您的指示,我已成功地将所有字段输出,但环路很少超出会议中的第7或第8场比赛(大多数会议12或14场比赛),有时在最后一场比赛中,而不是6只狗,只有4或5只狗真正出现。此外,在一些会议中,我不断得到“退出代码为0的过程结束”。有时如果我刷新,这将消失,但在某些情况下它不会。我在第7或第8场比赛前后尝试在源代码中查找特性,但看起来都一样。如果你对使用bs4有其他问题,那么我建议你打开另一个问题,似乎错误可能比这个问题更复杂。嗨,ncfirth,伙计y谢谢你的回复。不过我遇到了一些问题。按照你的指示,我成功地将所有字段都取出来了,但是循环很少超出会议中的第7或第8场(大多数会议为12或14场),有时在最后一场比赛中,而不是6只狗,只有4或5只狗真正出现。此外,在一些会议中,我不断得到“退出代码为0的过程结束”。有时,如果我刷新,这将消失,但在某些情况下,它不会消失。我在第7或第8场比赛前后尝试在源代码中查找特性,但看起来都一样。如果您对使用bs4有其他问题,那么我建议您打开另一个问题,似乎错误可能比这个问题更复杂。