BeautifulSoup,findAll后找到所有?

时间:2016-09-13 20:58:02

标签: python beautifulsoup python-requests

我对Python很陌生,主要需要它来从网站获取信息。 在这里,我试图从网站的底部获得简短的标题,但不能得到它们。

from bfs4 import BeautifulSoup
import requests

url = "http://some-website"
r = requests.get(url)
soup = BeautifulSoup(r.content, "html.parser")

nachrichten = soup.findAll('ul', {'class':'list'})

现在我需要另一个findAll来获取var" nachrichten"中的所有链接/ a,但是我该怎么办呢?

2 个答案:

答案 0 :(得分:1)

from bs4 import BeautifulSoup
import requests
url = "http://www.n-tv.de/ticker/"
r = requests.get(url)
soup = BeautifulSoup(r.content, "html.parser")
nachrichten = soup.findAll('ul', {'class':'list'})
links = []
for ul in nachrichten:
    links.extend(ul.findAll('a'))
print len(links)

希望这能解决您的问题,我认为导入是bs4。我从未放过bfs4

答案 1 :(得分:0)

使用 css选择器并选择是否要将所有链接放在一个列表中:

tag

如果你想要个人名单:

anchors = soup.select('ul.list a')

此外,如果您想要href,您可以确保只找到具有 href 属性的锚点并提取:

anchors = [ ul.find_all(a) for a in soup.find_all('ul', {'class':'list'})]

hrefs = [a["href"] for a in soup.select('ul.list a[href]')] 设置 href = True find_all