웹 캡처 및 변환 도구

Python 용 웹 스크레이퍼 API 파이썬 스크레이퍼 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의 Web Scraper API for Python을 사용하면 필요에 따라 원격으로 스크랩을 시작, 중지, 활성화 또는 비활성화 할 수 있습니다. 아래 예는 새 스크랩 상태와 함께 스크랩의 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) -모든 요청에 ​​사용할 로컬 프록시 서버를 설정합니다.