Извлечение неупорядоченного списка для определенного <div>: BeautifulSoup

Я очищаю эту веб-страницу, необходимую для моего приложения для Android. То, что я хотел бы сделать, – извлечь страны из атрибута href . Это то же самое, что и этот.

Вот мой код:

 from bs4 import BeautifulSoup import urllib2 import re html_page = urllib2.urlopen("http://www.howtocallabroad.com/a.html") soup = BeautifulSoup(html_page) li = soup.select("ul > li > a") for link in li: print link.get('href') 

Проблема, которую я получаю, заключается в том, что результат возвращает все теги, в том числе из других div s

 afghanistan/ albania/ algeria/ american-samoa/ andorra/ angola/ anguilla/ antigua/ argentina/ armenia/ aruba/ ascension/ australia/ austria/ azerbaijan/ codes.html # not needed nanp.html # not needed qa/ # not needed forums/ # not needed 

Я хотел бы узнать, какие функции / функции необходимы для этого. Я хочу только фильтровать href s только в <div id="content"> . Документы не содержат много информации.

Извините, это первый раз, когда я пишу python.

3 Solutions collect form web for “Извлечение неупорядоченного списка для определенного <div>: BeautifulSoup”

Используйте findAll() :

 >>> for i in soup.find('div',{'id':'content'}).findAll('a'): ... print i['href'] ... afghanistan/ albania/ algeria/ american-samoa/ andorra/ angola/ anguilla/ antigua/ argentina/ armenia/ aruba/ ascension/ australia/ austria/ azerbaijan/ 

soup.find('div',{'id':'content'}) Делает то, что он говорит. Он находит тег div, который имеет id content ( <div id="content"> будет сопоставлен).

.findAll() … находит все! 'a' используется как параметр для поиска всех тегов. Он возвращает список каждого тега.

Затем я просто распечатываю href каждого a-тега.

Пытаться

 li = soup.select("#content ul > li > a") 

вместо

 li = soup.select("ul > li > a") 

Сделайте это так:

 li = soup.select("#content ul > li > a") 

Например:

 li = soup.select("#[call india][1] ul > li > a") 
  • Простой HTML-адрес электронной почты: стили основных стилей CSS
  • Скрипты Python в HTML
  • 'forms.ContactForm object' не имеет атрибута 'hidden_tag'
  • Как загрузить все записи в бесконечном прокрутке сразу, чтобы проанализировать HTML в python
  • Вытягивание HTML с веб-страницы в Java
  • Скремблирование сложной таблицы с использованием Beautifulsoup и Python
  • Запустить метод python на веб-странице HTML
  • Получите все ссылки с BeautifulSoup с одного веб-сайта (функция «Загрузить больше»)
  • Python - лучший язык программирования в мире.