Python 使用BeautifulSoup刮取URL

Python 使用BeautifulSoup刮取URL,python,web-scraping,beautifulsoup,html-table,Python,Web Scraping,Beautifulsoup,Html Table,我已经抓取了下表的HTML代码。我只想抓取与表中每个元素相关联的链接,我如何才能做到这一点 这是我的密码: import urllib2 from bs4 import BeautifulSoup first=urllib2.urlopen("http://www.admision.unmsm.edu.pe/res20130914/A.html").read() soup=BeautifulSoup(first) for tr in soup.find_all('tr')[2:]: td

我已经抓取了下表的HTML代码。我只想抓取与表中每个元素相关联的链接,我如何才能做到这一点

这是我的密码:

import urllib2
from bs4 import BeautifulSoup
first=urllib2.urlopen("http://www.admision.unmsm.edu.pe/res20130914/A.html").read()
soup=BeautifulSoup(first)
for tr in soup.find_all('tr')[2:]:
    tds = tr.find_all('td')
    print tds
结果如下:

[<td><a href="./A/013/0.html">ENFERMERÍA</a></td>]
[<td><a href="./A/0141/0.html">TEC. MED. LAB. CLÍNICO Y ANATOMÍA PATOLÓGICA</a></td>]
[<td><a href="./A/0142/0.html">TEC. MED. TERAPIA FÍSICA Y REHABILITACIÓN</a></td>]
[<td><a href="./A/0143/0.html">TEC. MED. RADIOLOGÍA</a></td>]
[]
[]
[]
[]

这将输出所有链接,前提是每个
td
中只有一个链接

for td in tds:
    print td.a['href']
但是在
tr
元素上使用
find_all
可能更容易:

for link in tr.find_all('a'):
    print link['href']
如果要将它们保存在列表中,只需执行以下操作:

links = []
for tr in soup.find_all('tr')[2:]:
    links.extend([link['href'] for link in tr.find_all('a')])

页面中只有一个表,因此您可以简单地使用列表

links = [row.a['href'] for row in soup.find_all('tr') ]
结果

['./A/011/0.html', './A/012/0.html', './A/013/0.html', './A/0141/0.html', './A/0142/0.html', './A/0143/0.html', './A/0144/0.html', './A/015/0.html', './A/041/0.html', './A/042/0.html', './A/043/0.html', './A/051/0.html', './A/071/0.html', './A/072/0.html', './A/073/0.html', './A/081/0.html', './A/101/0.html', './A/102/0.html', './A/103/0.html', './A/131/0.html', './A/132/0.html', './A/141/0.html', './A/142/0.html', './A/144/0.html', './A/145/0.html', './A/162/0.html', './A/163/0.html', './A/165/0.html', './A/166/0.html', './A/167/0.html', './A/171/0.html', './A/172/0.html', './A/181/0.html', './A/191/0.html', './A/192/0.html', './A/193/0.html', './A/201/0.html', './A/202/0.html']

该输出看起来不像数组的python输出?您是否正确复制了它?另外,我很少使用beautifulSoup,但鉴于您所拥有的,为什么不直接使用
links=td.find_all('a')
来获取单元格中的链接呢?