Python:提取 div 内的 href

1 投票
1 回答
1291 浏览
提问于 2025-04-18 13:30

我正在尝试用Python写一个简单的下载工具,但我对这个语言还不太熟悉。这个脚本的功能是查找特定div id里面的链接(href),只要有链接,就调用一个叫getfile()的函数。以下是示例的HTML源代码 -

<div class="tab-pane fade in active" id="home">
    <p><i class="icon-film icon-white"> <a target="_blank" href="/accounting?id=265">Video</a></i></p>
    <p><i class="icon-file icon-white"> <a target="_blank" href="/downloadpdf?id=265&type=pdf">&nbsp;PDF Slides</a></i></p>
    <p><i class="icon-download icon-white"> <a target="_blank" href="/downloadpdf?id=265&type=file">Additional Files</a></i></p>
</div>

我打算使用beautifulsoup这个模块来解析和提取链接。目前我只有这样的代码 -

f = urllib2.urlopen(url)
s = f.read()
soup = bs4.BeautifulSoup(s)
for a in soup.select('div.home'):
    print a.attrs.get('href')

现在运行这段代码会打印出None

1 个回答

1

在类名为 tab-pane fade in active 的元素中找到所有的 href 链接:

soup = BeautifulSoup(st)                                             
for a in soup.findAll('div', {"class":"tab-pane fade in active"}):   
    for b in a.findAll('a'):                                         
        print b.get('href')

输出结果

/accounting?id=265
/downloadpdf?id=265&type=pdf
/downloadpdf?id=265&type=file

撰写回答