Как сканировать веб-сайт или извлекать данные в базу данных с помощью python?

Я хотел бы создать webapp, чтобы помочь другим студентам моего университета создать свои графики. Для этого мне нужно просканировать основные расписания (одну огромную страницу html), а также ссылку на подробное описание каждого курса в базу данных, предпочтительно на python. Кроме того, мне нужно войти в систему, чтобы получить доступ к данным.

  • Как это будет работать?
  • Какие инструменты / библиотеки можно использовать / использовать?
  • Есть ли хорошие учебники по этому поводу?
  • Как лучше всего иметь дело с двоичными данными (например, довольно pdf)?
  • Есть ли для этого хорошие решения?

4 Solutions collect form web for “Как сканировать веб-сайт или извлекать данные в базу данных с помощью python?”

  • requests на загрузку страниц.
  • lxml для очистки данных.

Если вы хотите использовать мощную фреймворк, то Scrapy . В нем есть также хорошая документация. В зависимости от вашей задачи это может быть немного переполнено.

Scrapy , вероятно, является лучшей библиотекой Python для сканирования. Он может поддерживать состояние для аутентифицированных сеансов.

Работа с двоичными данными следует обрабатывать отдельно. Для каждого типа файла вам придется обрабатывать его по-разному в соответствии с вашей собственной логикой. Для практически любого формата вы, вероятно, сможете найти библиотеку. Например, посмотрите на PyPDF для обработки PDF-файлов. Для файлов excel вы можете попробовать xlrd.

Мне понравилось использовать BeatifulSoup для извлечения html-данных

Это так просто:

 from BeautifulSoup import BeautifulSoup import urllib ur = urllib.urlopen("http://pragprog.com/podcasts/feed.rss") soup = BeautifulSoup(ur.read()) items = soup.findAll('item') urls = [item.enclosure['url'] for item in items] 

Для этого есть очень полезный инструмент, называемый web-harvest Link на их веб-сайт http://web-harvest.sourceforge.net/ Я использую это для сканирования веб-страниц

  • Разница между BeautifulSoup и искателем Scrapy?
  • Как я могу использовать разные конвейеры для разных пауков в одном проекте Scrapy
  • Python-Requests (> = 1. *): Как отключить keep-alive?
  • Как удалить запрос из URL-адреса?
  • Получить прокси-адрес ip-адрес, используя сканирование
  • Scrapy - не сканирует
  • Scrapy - как идентифицировать уже очищенные URL-адреса
  • Как остановить всех пауков и двигатель сразу после выполнения условия в конвейере?
  • Python - лучший язык программирования в мире.