Python Beautiful Soup检索多个信息网页

时间:2015-04-19 22:46:11

标签: python python-2.7 web-scraping beautifulsoup

所以我正在努力学习拼抢,并想知道如何获取多个网页的信息。我在http://www.cfbstats.com/2014/player/index.html上使用它。我想检索所有球队,然后进入每个球队链接,显示名单,然后检索每个球员信息,并在他们的个人链接中他们的统计数据。

到目前为止我所拥有的是:

import requests
from bs4 import BeautifulSoup

r = requests.get("http://www.cfbstats.com/2014/player/index.html")
r.content
soup = BeautifulSoup(r.content)
links = soup.find_all("a")
for link in links:
   college = link.text
   collegeurl = link.get("http")
   c = requests.get(collegeurl)
   c.content
   campbells = BeautifulSoup(c.content)

然后我从那里迷路了。我知道我必须在那里进行嵌套for循环,但我不想要某些链接,例如条款和条件以及社交网络。 只是试图获取玩家信息,然后尝试与他们的名字相关联的统计数据。

2 个答案:

答案 0 :(得分:1)

您必须以某种方式过滤链接并将for循环限制为与团队对应的循环。然后,你需要做同样的事情来获得玩家的链接。使用Chrome的“开发者工具”(或您的浏览器等效工具),我建议您(右键单击)检查您感兴趣的链接之一,然后尝试找到区别于其他不感兴趣的链接。例如,您将了解CFBstats页面:

  1. 所有团队链接都在<div class="conference">内。此外,它们都包含"/team/"中的子字符串href。因此,您可以xpath到这样的div中包含的链接,或者过滤带有这样的子字符串的链接,或者两者都过滤。

  2. 在团队页面上,玩家链接位于<td class="player-name">

  3. 这两个就足够了。如果没有,你就得到了要点。网络爬行是一门实验科学...

答案 1 :(得分:0)

不熟悉BeautifulSoup,但当然可以使用正则表达式来检索所需的数据。