首先 下载 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类的所有方法,可用于处理抓取结果。
调试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类的所有方法和属性,可用于控制状态抓取。