まず第一に ダウンロード Python用のWeb Scraper APIを使用し、内部にあるサンプルハンドラを見て開始します。
スクレイピングされたデータを処理する最も簡単な方法は、JSONまたはXMLオブジェクトとしてデータにアクセスすることです。これにより、データを簡単に操作およびクエリできるようになります。 JSONは、データセット名をオブジェクト属性として、次の一般的な形式で構造化されます。データセット名には、各列名を別の属性として持つオブジェクトの配列が含まれます。
{ "Dataset_Name": [ { "Column_One": "https://grabz.it/", "Column_Two": "Found" }, { " Column_One": "http://dfadsdsa.com/" , "Column_Two" : "Missing" }] }
まず、ハンドラーはすべてのスクレイピングされたデータを送信することに注意する必要があります。これには、JSONまたはXMLオブジェクトに変換できないデータが含まれる場合があります。 したがって、受信するデータのタイプは、処理する前に確認する必要があります。
scrapeResult = ScrapeResult.ScrapeResult() if scrapeResult.getExtension() == 'json': json = scrapeResult.toJSON() for json["Dataset_Name"] in obj: if obj["Column_Two"] == "Found": #do something else: #do something else else: #probably a binary file etc save it scrapeResult.save("results/"+scrapeResult.getFilename())
上記の例は、データセットのすべての結果をループする方法を示しています Dataset_Name
の値に応じて特定のアクションを実行します Column_Two
属性。 また、ハンドラーが受信したファイルがJSONファイルではない場合、 savedを結果ディレクトリに。 ScrapeResultクラスは、投稿されたすべてのファイルがGrabzItのサーバーからのものであることを保証しようとしますが、ファイルの拡張子もチェックする必要があります。 saved.
以下に、スクレイプ結果の処理に使用できるScrapeResultクラスのすべてのメソッドをリストします。
Pythonハンドラーをデバッグする最善の方法は、スクレイプの結果をダウンロードすることです ウェブスクレイプ ページ save 問題のあるファイルをアクセス可能な場所に配置し、そのファイルのパスをScrapeResultクラスのコンストラクターに渡します。 これにより、以下に示すように、毎回新しいスクレイプを実行することなく、ハンドラーをデバッグできます。
scrapeResult = ScrapeResult.ScrapeResult("data.json"); #the rest of your handler code remains the same
GrabzItのPython用Web Scraper APIを使用すると、必要に応じてリモートでスクレイプを開始、停止、有効化、または無効化できます。 これは、新しいスクレイプステータスと共にスクレイプのIDが SetScrapeStatus
方法。
client = GrabzItScrapeClient.GrabzItScrapeClient("Sign in to view your Application Key", "Sign in to view your Application Secret") //Get all of our scrapes myScrapes = client.GetScrapes() if (len(myScrapes) == 0) { raise Exception('You have not created any scrapes yet! Create one here: https://grabz.it/scraper/scrape/') } //Start the first scrape client.SetScrapeStatus(myScrapes[0].ID, "Start") if (len(myScrapes[0].Results) > 0) { //re-send first scrape result if it exists client.SendResult(myScrapes[0].ID, myScrapes[0].Results[0].ID); }
以下に、状態スクレイプの制御に使用できるGrabzItScrapeClientクラスのすべてのメソッドとプロパティを示します。