Откройте веб-страницу и верните словарь ссылок на этой странице.

-5

Я хотел написать функцию, которая открывает веб-страницу и возвращает словарь всех ссылок и их текст на этой странице. Я пытался это сделать, но это дало мне ошибку. Что я могу сделать?

def process(url):
myopener = MyOpener()
#page = urllib.urlopen(url)
page = myopener.open(url)

text = page.read()
page.close()

пример ввода

<a href='http://my.computer .com/some/file.html'>link text</a>

вывод

{"http://my.computer.com/some/file.html":link text.."}

спросил(а) 2015-10-31T06:17:00+03:00 4 года, 1 месяц назад
1
1 ответ
45

Добро пожаловать в Stack Overflow,

Вы не показали, что делает MyOpener, поэтому я использовал свое. Этот код использует Python 3 и парсер Beautiful Soup 4 HTML (личный фаворит) в статье в Википедии Python.

root_url = "https://en.wikipedia.org"
html_string = retrieve_webage(root_url + "/wiki/Python_%28programming_language%29")
soup = BeautifulSoup(html_string)
output = {}
# Can redefine soup here to parse only a certain part of the page
for link in soup.find_all('a'):
linkhref = link.get('href')
if not linkhref:
# Ingnore blank hyperlinks
pass
elif linkhref[0] == '/':
# Add root url to relitive links
linkhref = root_url + linkhref
output[linkhref] = link.text

Этот скрипт будет перезаписывать любые ссылки с одинаковыми атрибутами href когда он читает их на странице. Вы можете узнать больше о Красивом супе здесь.

Если у вас есть вопросы, напишите ниже

ответил(а) 2015-10-31T12:05:00+03:00 4 года, 1 месяц назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема