Хобрук: Ваш путь к мастерству в программировании

Извлечение тегов ‹a› с помощью BeautifulSoup


  • У вас есть пробел между https://www.symantec.com и /index.jsp, возможно, его удаление решит вашу проблему? 27.12.2015
  • попробуйте использовать запросы python для получения html... это работает очень хорошо. 27.12.2015
  • @hd1 исправил пробел, это явно была опечатка. Спасибо. 27.12.2015
  • @Rhea был OP, alexxe, возможно, это была не опечатка. 27.12.2015

Ответы:


1

Измените парсер на html5lib или lxml:

soup = BeautifulSoup(response, 'html5lib')
soup = BeautifulSoup(response, 'lxml')

Для этого потребуется установить html5lib или lxml :

pip install html5lib
pip install lxml

Доказательство:

>>> from bs4 import BeautifulSoup
>>> import urllib2
>>> 
>>> response = urllib2.urlopen('https://www.symantec.com/index.jsp').read()
>>> len(BeautifulSoup(response, 'html.parser').find_all("a"))
0
>>> len(BeautifulSoup(response, 'html5lib').find_all("a"))
187
>>> len(BeautifulSoup(response, 'lxml').find_all("a"))
187

См. также соответствующие части документации:

26.12.2015
  • Почему? Чем отличаются другие парсеры 27.12.2015
  • Этот вопрос в моем комментарии был предназначен для того, чтобы сказать, что вам нужно объяснить это в своем ответе. 27.12.2015
  • Кроме того, поскольку вас интересует только часть документа, вы можете создать малоизвестную SoupStrainer и передать его в качестве аргумента parse_only для экономии времени и памяти. 27.12.2015
  • @user3100115 user3100115 да, хороший момент, который может легко привести к преждевременным проблемам с оптимизацией :) 27.12.2015
  • Новые материалы

    Учебные заметки JavaScript Object Oriented Labs
    Вот моя седьмая неделя обучения программированию. После ruby ​​и его фреймворка rails я начал изучать самый популярный язык интерфейса — javascript. В отличие от ruby, javascript — это более..

    Разбор строк запроса в vue.js
    Иногда вам нужно получить данные из строк запроса, в этой статье показано, как это сделать. В жизни каждого дизайнера/разработчика наступает момент, когда им необходимо беспрепятственно..

    Предсказание моей следующей любимой книги 📚 Благодаря данным Goodreads и машинному обучению 👨‍💻
    «Если вы не любите читать, значит, вы не нашли нужную книгу». - J.K. Роулинг Эта статья сильно отличается от тех, к которым вы, возможно, привыкли . Мне очень понравилось поработать над..

    Основы принципов S.O.L.I.D, Javascript, Git и NoSQL
    каковы принципы S.O.L.I.D? Принципы SOLID призваны помочь разработчикам создавать надежные, удобные в сопровождении приложения. мы видим пять ключевых принципов. Принципы SOLID были разработаны..

    Как настроить Selenium в проекте Angular
    Угловой | Селен Как настроить Selenium в проекте Angular Держите свое приложение Angular и тесты Selenium в одной рабочей области и запускайте их с помощью Mocha. В этой статье мы..

    Аргументы прогрессивного улучшения почти всегда упускают суть
    В наши дни в кругах веб-разработчиков много болтают о Progressive Enhancement — PE, но на самом деле почти все аргументы с обеих сторон упускают самую фундаментальную причину, по которой PE..

    Введение в Джанго Фреймворк
    Схема «работать умно, а не усердно» В этой и последующих статьях я познакомлю вас с тем, что такое фреймворк Django и как создать свое первое приложение с помощью простых и понятных шагов, а..