どのようなスクリプト言語やプラットフォームがWebページのダウンロードと画面のやり取りに使用されますか?

どのようなスクリプト言語やプラットフォームがWebページのダウンロードと画面のやり取りに使用されますか?

重複の可能性:
Webアプリケーションで特定のタスクを自動化するためにカールを使用した経験がある人はいますか?

これが私がすべきことですか?どのプラットフォームが最適なのか疑問に思います。わかりやすくコーディングしやすいです。おそらく私の技術レベルをはるかに超えているので、アウトソーシングする必要があります。

いくつかの背景:

私は私の図書館を通していくつかの情報データベースやウェブサイトにアクセスできます。まず、図書館のWebページをロードしてデータベースとWebサイトにアクセスします。ダイアログボックスに私の図書館カード番号を入力し、[送信]リンクをクリックします。次に、データをインポートするサービスの認証済み(クッキーなどを介して仮定)Webページを開きます。

私が達成したいもの:

フォルダに適切な名前のPDFファイルのコレクションを作成したいと思います。または、インデックスページでハイパーリンクされているすべての保存されたページを含むPDFファイルを1つのPDFファイルにすることをお勧めします。

このページはいくつかのウェブサイトから来ました。これらのサイトへのアクセスは無料であるか、パスワードまたはライブラリベースのアクセスが必要です(私の知る限り、画面ベースの対話が必要です)。

さらに、ライブラリベースのアクセスを介してアクセスできるこれらのサイトの1つは、別のページに移動するたびにアドレスバーのWebアドレスを変更しません(残念です)。したがって、オフラインで表示するためにダウンロードしたいページの多くは、単純なWget型コマンドでの使用には適していません。私が理解したのは、ページを読み込むにはWebサイトで正しいタブをクリックする方法が必要です。ページが読み込まれたら、適切な名前のPDFファイルとして印刷して1つのPDFファイルにコンパイルする必要があります。

このミニアプリ/スクリプトを開発するためにどのプラットフォームを使用するべきか疑問に思いますか?

このタイプのアプリケーションに最適なプラットフォームを決定するのに誰かを助けることができますか?理想的には、関数呼び出し指向のソリューションが必要です。その後、1ヶ月後にWebページを追加する必要がある場合は、開発者に「設定」の変更を依頼する必要はありません。

プラットフォームは必ずしもUnixである必要はありませんが、Unixプラットフォームを使用すると柔軟性が最大化されると思います。 Mac、オンラインホスティング、またはRaspberry Piで実行できます:)

ありがとうございます! !


修正する:

私はITを知っている友人が言ったことを聞きました。 http://seleniumhq.org/または http://scrapy.org/良い選択かもしれません。彼らも研究します。

答え1

まあ、私はスクラップへのリンクを受けた後、いくつかの調査を行い、私がWebスクレイパーについて話していることに気づきました。気になる方のために私が収集したいくつかの情報をお知らせします。

まだどのように進むかはわかりませんが、BeautifulSoupとMechanizeが前進する最も簡単な方法のようです。ツイルはシンプルさのためかなり良く見えます。どんなアイデアがありますか?


私の研究リンクのコレクション

Python Webスクレイピングツールの概要を実演 http://www.slideshare.net/maikroeder/overview-of-python-web-scraping-tools

機械化 http://wwwsearch.sourceforge.net/mechanize/

メーリータン:彼が私たちを教えたので、私たちは彼をカメと呼びます。 http://www.crummy.com/software/BeautifulSoup/

twill: Web ブラウジングのための簡単なスクリプト言語 http://twill.idyll.org/

Selenium - Webブラウザの自動化 http://seleniumhq.org/

PhantomJS:JavaScript APIを使用したヘッドレスWebKit http://phantomjs.org/


Mechanicalは、私のお気に入りの強力な高度な検索機能です(非常に簡単なフォームの作成と送信)。

Twillは、Mechanizeに基づいて構築された単純なスクリプト言語です。

BeautifulSoup + urllib2もうまく動作します。

Scrapyは非常に有望なプロジェクトのように見えます。

私が使用できるPythonベースのWebクローラーを知っている人はいますか? - スタックオーバーフロー https://stackoverflow.com/questions/419235/anyone-know-of-a-good-python-based-web-crawler-that-i-could-use


PycURLホームページ http://pycurl.sourceforge.net/


Scrapy の評価 - BeautifulSoup + Mechanize 並行性を得るために Evenlets を使用する方が簡単です。

Scrapyは学ぶ価値がありますか? - スタックオーバーフロー https://stackoverflow.com/questions/6283271/is-it-worth-learning-scrapy


データの改善、再利用、リクエスト Scraper Wiki https://scraperwiki.com/


答え2

私はいつも使う軽量水圧(libwww-perl) またはウェブサイト: 機械化このようなタスクにはPythonを使用する複数のプログラミングタスクがありますが、テキスト処理に関連するすべてのタスクにPerlを使用することを好みます。

おそらく私が書いたものの中で最も複雑なのは、数年前に私のパートナーと私が小さな書店を所有していたことでした。彼女は書店のウェブサイトから書籍に関する情報(ISBNまたはバーコードの入力)を抽出し、関連情報を入力するプログラムを必要としていました。詳細は彼女の(postgresql)在庫データベースに挿入されます。

Webクローラーの作成は退屈で時間がかかることがあります。さまざまなWebページのHTMLソースコードを読み、探している情報を識別して抽出する方法を見つけるのに時間がかかります。

特に難しいことではありませんが、HTMLに関する十分な知識と少なくとも中級のプログラミング技術が必要です。

すべてのタスクを実行する 1 つのクローラーではなく、各データベース・サイトに対して異なるクローラーを作成する必要がある場合があります。ただし、関数を含むラッパースクリプトを作成したり、サイトに応じて別々のスクリプトを呼び出すこともできます。

ホームページも変更されます。 6〜12ヶ月間うまく機能していたクローラーは、サイトが再設計され、スクリプトが意図したとおりに機能しなくなるため、突然動作を停止する可能性があります。

したがって、データベースにプログラムによるアクセスのための一種のAPIがある場合(例:残りまたは石鹸でもRSS) 次に、HTMLをキャッチする代わりに使用してください。残念ながら、図書館を通じて提供されるデータベースの種類では、このようなことが発生する可能性はありません(データベース所有者は、データに対するサイバー以前の態度を持つ傾向があり、何よりもアクセスを制御して制限することに興味があります)。誰もがブラウザの代わりにプログラムを介して自分のデータに簡単にアクセスできるようにしたくないため、サイトを難読化してHTMLコードを理解しにくくしたり、リンクを抽出するためにJavaScriptソルバーが必要になるように多くの努力を払っています。他のデータ。

これの良い例はテレビリストサイトです。これらのサイトのいくつかは、人々が自分のデータを使用してMythTVなどの番組の録画スケジュールを自動化したくないので、サイト開発者とサイトスクレーパーの間に継続的な戦いがあります。 Technology Warsの著者。

PerlにはJavaScriptソルバーがあります(WWW :: Mechanizeで使用するためのソルバーを含む)。WWW::脚本家しかし、時にはウェブサイトのJavaScriptコードを直接調べて、HTMLの難読化で何をしているのかを把握し、jsインタプリタなしでデータの難読化を無効にするPerlコードを書く方が簡単です。

関連情報