2016-09-13 3 views
2

Я довольно новичок в Python и в основном нуждаюсь в нем для получения информации с веб-сайтов. Здесь я попытался получить короткие заголовки снизу сайта, но не могу их получить.BeautifulSoup, findAll после findAll?

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, чтобы получить все ссылки/а из вар «Nachrichten», но как я могу это сделать?

+0

Я не думаю, что есть bfs4. Я никогда не стадо этого. – Sandeep

ответ

0

Используйте селектор CSS с выбором, если вы хотите, чтобы все ссылки в одном списке:

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

Если вы хотите отдельные списки:

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

Кроме того, если вы хотите hrefs вы можете убедиться, что вы найдете только анкеры с href атрибуты и выдержка:

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

С find_all комплект href = True i.e ul.find_all(a, href=True).

0
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

Смежные вопросы