web-dev-qa-db-ja.com

Pythonを使用してWebサイトをクロール/データベースにデータを抽出する方法

私の大学の他の学生が自分のスケジュールを作成するのに役立つWebアプリケーションを作成したいと思います。そのためには、マスタースケジュール(1つの巨大なhtmlページ)と、各コースの詳細な説明へのリンクをデータベース(できればPython)にクロールする必要があります。また、データにアクセスするにはログインする必要があります。

  • それはどのように機能しますか?
  • どのツール/ライブラリを使用できますか?
  • その上に良いチュートリアルはありますか?
  • バイナリデータ(pretty pdfなど)を最適に処理するにはどうすればよいですか?
  • そのための良い解決策はすでにありますか?
11
McEnroe

強力なスクレイピングフレームワークを使用する場合は、 Scrapy を使用できます。良いドキュメントもいくつかあります。ただし、タスクによっては、やり過ぎかもしれません。

11
Acorn

Scrapy は、おそらくクロールに最適なPythonライブラリです。認証されたセッションの状態を維持できます。

バイナリデータの処理は個別に処理する必要があります。ファイルの種類ごとに、独自のロジックに従って異なる方法で処理する必要があります。ほとんどどんな種類のフォーマットでも、おそらくライブラリを見つけることができるでしょう。たとえば、PDFの処理については PyPDF を見てください。 Excelファイルの場合、xlrdを試すことができます。

3
sharjeel

HTMLデータの抽出に BeatifulSoup を使用するのが好き

それはこれと同じくらい簡単です:

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]
2
Alexey Grigorev

この目的のために、web-harvestというウェブサイトへのリンクという非常に便利なツールがあります http://web-harvest.sourceforge.net/ これを使用して、Webページをクロールします

0
Riz