我有这段代码:
import urllib
from bs4 import BeautifulSoup
url = "http://www.microsoft.com/en-us/download/confirmation.aspx?id=17851"
pageurl = urllib.urlopen(url)
soup = BeautifulSoup(pageurl)
for d in soup.select("p.start-download [href]"):
print d['href']
当我运行此代码时,它给了我很多下载链接。 我怎样才能只获取一个下载链接?
答案 0 :(得分:2)
如果您使用给定的代码,您将无法抓住链接并使用它们。请改用以下代码:
import urllib
from bs4 import BeautifulSoup
url = "http://www.microsoft.com/en-us/download/confirmation.aspx?id=17851"
pageurl = urllib.urlopen(url)
soup = BeautifulSoup(pageurl)
urls = []
for d in soup.select("p.start-download [href]"):
urls.append(d.attrs['href'])
print urls[0]
如果您使用上面的代码,那么您可以在程序的其他部分使用链接本身。你也可以使用点亮的理解来做到这一点:
urls = [d['href'] for d in soup.select("p.start-download [href]")]
print urls[0]
然后,您可以遍历urls
以获取所需的网址,或者只使用索引来获取您的链接。无论哪种方式,这比仅仅打印链接更灵活。例如,如果你不想完全安装,只是想要一些其他软件包或XP软件包而不是Vista,7和8(以你的网址为例)。
答案 1 :(得分:1)
for d in soup.select("p.start-download [href]"):
print d['href']
break
将在第一个链接后停止