捕获和转换Web的工具

适用于Python的Web Scraper API

Python Scraper API

首先 下载 Web Scraper API for Python,并查看其中的示例处理程序以开始使用。

处理刮取的数据

处理已抓取数据的最简单方法是将数据作为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类的所有方法,可用于处理抓取结果。

调试

调试Python处理程序的最佳方法是从 网页抓取 页, save 您遇到问题的文件到可访问的位置,然后将该文件的路径传递给ScrapeResult类的构造函数。 这使您可以调试处理程序,而不必每次都进行新的抓取,如下所示。

scrapeResult = ScrapeResult.ScrapeResult("data.json");

#the rest of your handler code remains the same

控制刮擦

使用适用于Python的GrabzIt的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方法和属性

下面列出的是GrabzItScrapeClient类的所有方法和属性,可用于控制状态抓取。