Как сканировать веб-сайт или извлекать данные в базу данных с помощью python?
Я хотел бы создать webapp, чтобы помочь другим студентам в моем университете создать свои графики. Для этого мне нужно просканировать основные расписания (одну огромную страницу html), а также ссылку на подробное описание каждого курса в базу данных, предпочтительно на python. Кроме того, мне нужно войти в систему, чтобы получить доступ к данным.
- Как это работает?
- Какие инструменты/библиотеки можно использовать/я должен использовать?
- Есть ли хорошие учебники по этому поводу?
- Как лучше всего иметь дело с двоичными данными (например, довольно pdf)?
- Есть ли для этого хорошие решения?
Ответы
Ответ 1
Если вы хотите использовать мощную среду скрепок, Scrapy
. В нем есть также хорошая документация. В зависимости от вашей задачи это может быть немного переполнено.
Ответ 2
Scrapy, вероятно, является лучшей библиотекой Python для обхода. Он может поддерживать состояние для аутентифицированных сеансов.
Работа с двоичными данными должна обрабатываться отдельно. Для каждого типа файла вам придется обрабатывать его по-разному в соответствии с вашей собственной логикой. Для практически любого формата вы, вероятно, сможете найти библиотеку. Например, посмотрите на PyPDF для обработки PDF файлов. Для файлов excel вы можете попробовать xlrd.
Ответ 3
Мне понравилось использовать 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]
Ответ 4
Для этого есть очень полезный инструмент, называемый web-сбор
Ссылка на их сайт http://web-harvest.sourceforge.net/
Я использую это для сканирования веб-страниц