Webをキャプチャして変換するツール

Python用のWeb Scraper API Python Scraper API

まず第一に ダウンロード 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メソッド

以下に、スクレイプ結果の処理に使用できるScrapeResultクラスのすべてのメソッドをリストします。

  • string getExtension() -スクレイプから生じたファイルの拡張子を取得します。
  • string getFilename() -スクレイプの結果のファイルのファイル名を取得します。
  • object toJSON() -スクレイプから生じるJSONファイルを変換します intoオブジェクト。
  • string toString() -スクレイプから生じるファイルを string.
  • xml.etree.ElementTree toXML() -スクレイプから生成されたXMLファイルをXML要素に変換します。
  • boolean save(path) - save■スクレイプの結果のファイル。成功した場合はtrueを返します。

デバッギング

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.aspx')
}
//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のメソッドとプロパティ

以下に、状態スクレイプの制御に使用できるGrabzItScrapeClientクラスのすべてのメソッドとプロパティを示します。

  • GrabzItScrape[] GetScrapes() -すべてのユーザースクレイプをGrabzItScrapeオブジェクトの配列として返します。
  • GrabzItScrape GetScrape(id) -目的のスクレイプを表すGrabzItScrapeオブジェクトを返します。
  • SetScrapeProperty(id, property) -設定します 擦り傷の性質 成功した場合はtrueを返します。
  • SetScrapeStatus(id, status) -スクレイプのステータス(「開始」、「停止」、「有効」、「無効」)を設定し、成功した場合はtrueを返します。
  • SendResult(id, resultId) -スクレイプの結果を再送信し、成功した場合はtrueを返します。
    • スクレイプIDと結果IDは、GetScrapeメソッドから見つけることができます。
  • SetLocalProxy(proxyUrl) -すべての要求に使用するローカルプロキシサーバーを設定します。