Scrapyは、ウェブサイトをクロールし、そのページから構造化データの抽出が出来ます。高速で高レベルの画面スクレイピング、Webクローリングフレームワークです。Scrapyは全てPythonで書かれています。
http://scrapy.org/
CentOS6にScrapyの環境を用意して、下記の動画のチュートリアルを試しました。
ソースは、下記のページで公開されています。
Scraping Web Pages With Scrapy
このソースで行っているのは、Craigslistの「NPO」のカテゴリで表示されているリストのタイトルと、そのURLを取得するというものです。
Craigslistとは - IT用語辞典 e-Words
実際に処理をする対象のページ
データを実際に取得して格納をするスクリプト
スクリプトを動かして結果をCSVに保存します。
2014/08/03 21:20 に実行して保存されたCSVの中身を確認
Scrapyを使えば、クローリング、収集したデータの処理、整形まで、複雑な処理が簡単に出来そうです。
http://scrapy.org/
CentOS6にScrapyの環境を用意して、下記の動画のチュートリアルを試しました。
ソースは、下記のページで公開されています。
Scraping Web Pages With Scrapy
このソースで行っているのは、Craigslistの「NPO」のカテゴリで表示されているリストのタイトルと、そのURLを取得するというものです。
Craigslistとは - IT用語辞典 e-Words
実際に処理をする対象のページ
データを実際に取得して格納をするスクリプト
from scrapy.spider import BaseSpider from scrapy.selector import HtmlXPathSelector from craigslist_sample.items import CraigslistSampleItem class MySpider(BaseSpider): name = "craig" allowed_domains = ["craigslist.org"] start_urls = ["http://sfbay.craigslist.org/npo/"] def parse(self, response): hxs = HtmlXPathSelector(response) titles = hxs.select("//span[@class='pl']") items = [] for titles in titles: item = CraigslistSampleItem() item ["title"] = titles.select("a/text()").extract() item ["link"] = titles.select("a/@href").extract() items.append(item) return items
スクリプトを動かして結果をCSVに保存します。
$ scrapy crawl craig -o items.csv -t csv
2014/08/03 21:20 に実行して保存されたCSVの中身を確認
$ more items.csv link,title /sfc/npo/4599976929.html,✦FULL-TIME AND PART-TIME JOBS! EARN AVG OF $11-16/HR /eby/npo/4599904588.html,█ CAMPAIGN STAFF POSITION to FIGHT FAC /eby/npo/4599659276.html,"!!!What's in Your Water? Clean Water Action, Now Hiring!!" /scz/npo/4599590859.html,*I'm an ACTIVIST. What Kind of Progressive Are You? Click To Find Out! /eby/npo/4599575085.html,▲I'm an ACTIVIST. What Kind of Progressive Are You? Click To Find Out! /sfc/npo/4599499777.html,FULL-TIME AND PART-TIME JOBS WITH CALPIRG! EARN AVG OF $11-16/HR /eby/npo/4599307693.html,Join our winning team of rad activists! PT phone work 12$ hr /sfc/npo/4599088866.html,Resident Services Coordinator /sfc/npo/4599069160.html,Stonestown Family YMCA - After School Program Leader /eby/npo/4599024935.html,▲LGBT EQUALITY SUMMER JOBS W/ADVANCEMENT OPPORTUNITIES $4700-7500 以下続く
Scrapyを使えば、クローリング、収集したデータの処理、整形まで、複雑な処理が簡単に出来そうです。
0 件のコメント:
コメントを投稿