我想刮这个页面的一些链接。拉链接和刮python这些网页
http://www.covers.com/pageLoader/pageLoader.aspx?page=/data/wnba/teams/pastresults/2012/team665231.html
这会得到我想要的链接。
boxurl = urllib2.urlopen(url).read()
soup = BeautifulSoup(boxurl)
boxscores = soup.findAll('a', href=re.compile('boxscore'))
我想从页面上抓取每个boxscore。我已经制作了代码来抓取比分,但是我不知道如何得到它们。
编辑
我想这样会比较好,因为它剔除了html标签。我仍然需要知道如何打开它们。
for link in soup.find_all('a', href=re.compile('boxscore')):
print(link.get('href'))
EDIT2: 我这是怎么凑一些数据从页面的第一个链接。
url = 'http://www.covers.com/pageLoader/pageLoader.aspx?page=/data/wnba/results/2012/boxscore841602.html'
boxurl = urllib2.urlopen(url).read()
soup = BeautifulSoup(boxurl)
def _unpack(row, kind='td'):
return [val.text for val in row.findAll(kind)]
tables = soup('table')
linescore = tables[1]
linescore_rows = linescore.findAll('tr')
roadteamQ1 = float(_unpack(linescore_rows[1])[1])
roadteamQ2 = float(_unpack(linescore_rows[1])[2])
roadteamQ3 = float(_unpack(linescore_rows[1])[3])
roadteamQ4 = float(_unpack(linescore_rows[1])[4])
print roadteamQ1, roadteamQ2, roadteamQ3, roadteamQ4
但是,当我尝试这个。
url = 'http://www.covers.com/pageLoader/pageLoader.aspx? page=/data/wnba/teams/pastresults/2012/team665231.html'
boxurl = urllib2.urlopen(url).read()
soup = BeautifulSoup(boxurl)
tables = pages[0]('table')
linescore = tables[1]
linescore_rows = linescore.findAll('tr')
roadteamQ1 = float(_unpack(linescore_rows[1])[1])
roadteamQ2 = float(_unpack(linescore_rows[1])[2])
roadteamQ3 = float(_unpack(linescore_rows[1])[3])
roadteamQ4 = float(_unpack(linescore_rows[1])[4])
我得到这个错误。 表= pages0类型错误:“STR”对象不是可调用
print pages[0]
吐出所有像正常的第一链路的HTML的。希望这不是太混乱。总而言之,我现在可以获得链接,但仍然可以从中获得。
如果您正在使用的页面作为“爬行”的基础 - 你可能希望看看[scrapy](http://scrapy.org) – 2013-05-13 13:27:21
现在你的问题更清晰,你可能想看看以前的答案我做过http://stackoverflow.com/questions/ 15866297 /匹配特定表格内的html-beautifulsoup/15866957#15866957所有你需要做的就是系统地工作,这并不难,只是单调乏味! – Vorsprung 2013-05-13 18:30:02
我通常可以找到和刮我想要的表。在这种情况下,它是网页上的第二个表格。所以tables = soup('table') linescore = tables [1]选择我想要的表格。我遇到麻烦的地方是从链接打开网页,然后选择表格。 – user2333196 2013-05-13 19:20:30