2015-12-13 5 views
0

Я пытаюсь написать программу на python, которая считывает все данные с веб-страницы и добавляет содержимое любого из заголовков заголовков <h1> через <h6> в список. Пока я просто пытаюсь получить информацию о сайте в первую очередь, что оказалось трудным.Извлечение информации HTML из URL-адреса

Редактировать: Это для класса. К сожалению, нам не разрешено использовать библиотеки, которые не устанавливаются заранее с помощью python.

Редактировать 2: Благодарим вас за все ваши советы. Программа теперь успешно читает HTML-сайт данного веб-сайта. У кого-нибудь есть предложения по поиску определенной строки (являющейся тегами <H>) в веб-странице?

import urllib 
from urllib.request import urlopen 

#example URL that includes an <h> tag: http://www.hobo-web.co.uk/headers/ 
userAddress = input("Enter a website URL: ") 

webPage = urllib.request.urlopen(userAddress) 

print (webPage.read()) 

webPage.close() 
+1

http://docs.python-requests.org/en/latest/ и http://www.crummy.com/software/BeautifulSoup/ BS4/DOC / – pvg

ответ

1

Я полагаю, вы используете python3 для получения веб-страницы. Это может быть извлечена с помощью следующего кода:

import urllib 
from urllib.request import urlopen 

address = "http://www.hobo-web.co.uk/headers/" 
webPage = urllib.request.urlopen(address) 

print (webPage.read()) 

Для вытаскивания информации с веб-страницы, вы можете использовать BeautifulSoup. Это невероятный инструмент для вытаскивания информации с веб-страницы. Вы можете использовать его для извлечения таблиц, списков, абзацев, а также вы можете поместить фильтры для извлечения информации с веб-страниц.

Установите его здесь: http://www.crummy.com/software/BeautifulSoup/bs4/doc/#installing-beautiful-soup

0

Отъезд библиотеки BeautifulSoup. Его API для разбора дерева DOM. Вы можете делать такие вещи, как soup.find_all ('h1'), который вернет список всех элементов h1.

0

Его лучше использовать with open, поэтому он автоматически закрывает соединение. Вот пример:

import urllib.request 
address = "http://www.hobo-web.co.uk/headers/" 
with urllib.request.urlopen(address) as response: 
    html = response.read() 
    print html 
0

ваш webPage переменная является объектом сети, на самом деле получить содержимое HTML использовать

content = webPage.read() 

для получения содержимого заголовка тега вы можете Используйте BeautifulSoup библиотеку

from bs4 import BeautifulSoup 

htmlContent = webPage.read() 
soup = BeautifulSoup(htmlContent, from_encoding=htmlContent.info().getparam('charset')) 
heads = soup.find_all('head').text 

сейчас heads - это список содержимого всех вхождений заголовка


читать больше о BeautifulSoup библиотеке по адресу: http://www.crummy.com/software/BeautifulSoup/bs4/doc/

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