我已经删除了下表的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>]
答案 0 :(得分:2)
如果每个td
中只有一个链接,则会输出所有链接。
for td in tds:
print td.a['href']
但是在find_all
元素上使用tr
可能更容易:
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')])
答案 1 :(得分:1)
页面中只有一个表格,因此您只需使用列表理解
即可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']