웹 캡처 및 변환 도구

ASP.NET 용 웹 스크레이퍼 API ASP.NET 스크레이퍼 API

가장 먼저 다운로드 ASP.NET 용 Web Scraper API를 시작하고 샘플 웹 프로젝트에있는 handler.ashx를 검사하여 시작하십시오.

스크랩 된 데이터 처리

스크랩 된 데이터를 처리하는 가장 쉬운 방법은 데이터를 쉽게 조작하고 쿼리 할 수 ​​있도록 JSON 또는 XML 객체로 데이터에 액세스하는 것입니다. JSON은 데이터 집합 이름을 객체 속성으로 사용하여 다음과 같은 일반적인 형식으로 구성되며 각 열 이름이 다른 속성 인 객체 배열을 포함합니다.

{
  "Items": [
    {
      "Column_One": "https://grabz.it/",
      "Column_Two": "Found"
    },
    {
      "Column_One": "http://dfadsdsa.com/",
      "Column_Two": "Missing"
    }]
}

우선 처리기는 JSON 또는 XML 객체로 변환 할 수없는 데이터를 포함 할 수있는 모든 스크랩 된 데이터를 전송한다는 사실을 기억해야합니다. 따라서 처리하기 전에 수신중인 데이터 유형을 확인해야합니다.

그러나 ASP.NET API를 사용하면 JSON 또는 XML 파일을 읽으려면 추가 단계가 필요합니다. JSON 또는 XML 파일은 예상되는 데이터 구조와 일치하는 클래스가 작성됩니다. 위의 JSON 데이터 구조를 보유하기 위해 두 개의 클래스 정의가 작성되었습니다.

public class DataSet
{
    public List<Item> Items;
}

public class Item
{
    public string Column_One;
    public string Column_Two;
}

이 클래스는 이제 JSON 파일을 변환하는 데 사용됩니다 into 사용 가능한 객체 구조. 아래 예제에서 아래의 ScrapeResult 생성자는 HttpRequest 클래스를 수신하지만 HttpRequestBase 클래스를 허용하여 ASP.NET MVC 웹 프로젝트와 호환되도록합니다.

ScrapeResult scrapeResult = new ScrapeResult(context.Request);

if (scrapeResult.Extension == "json")
{
    DataSet dataSet = scrapeResult.FromJSON<DataSet>();
    foreach (Item item in dataSet.Items)
    {
        if (item.Column_Two == "Found")
        {
            //do something
        }
        else
        {
            //do something else
        }
    }
}
else
{
    //probably a binary file etc save it
    scrapeResult.save(context.Server.MapPath("~/results/" + scrapeResult.Filename));
}

위의 예는 데이터 세트 클래스의 모든 결과를 반복하고 값에 따라 특정 조치를 수행하는 방법을 보여줍니다. Column_Two 속성. 또한 핸들러가 수신 한 파일이 JSON 파일이 아닌 경우 saved를 결과 디렉토리로. ScrapeResult 클래스는 게시 된 모든 파일이 GrabzIt의 서버에서 시작되는지 확인하려고 시도하지만 파일의 확장자도 확인해야합니다. saved.

ScrapeResult 메서드 및 속성

아래는 스크랩 결과를 처리하는 데 사용할 수있는 ScrapeResult 클래스의 모든 메서드와 속성입니다.

  • string Extension -스크랩으로 인한 파일 확장자를 가져옵니다.
  • string Filename -스크랩으로 인한 파일의 파일 이름을 가져옵니다.
  • T FromJSON<T>() -스크랩으로 인한 모든 JSON 파일을 지정된 유형으로 변환합니다.
  • string ToString() -긁힘으로 인해 발생하는 모든 파일을 string.
  • T FromXML<T>() -스크랩으로 인한 모든 XML 파일을 지정된 유형으로 변환합니다.
  • boolean Save(string path) - save긁힘으로 인한 파일은 성공하면 true를 리턴합니다.

디버깅

ASP.NET 처리기를 디버깅하는 가장 좋은 방법은 스크랩 결과를 웹 스크랩 페이지 save 문제가있는 파일을 액세스 가능한 위치로 옮긴 다음 해당 파일의 경로를 ScrapeResult 클래스의 생성자로 전달하십시오. 그러면 아래와 같이 매번 새 스크랩을 수행하지 않고도 핸들러를 디버깅 할 수 있습니다.

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

#the rest of your handler code remains the same

스크랩 제어

GrabzIt의 Web Scraper API를 사용하면 스크랩의 상태를 변경하여 필요에 따라 스크랩을 시작, 중지 또는 비활성화 할 수 있습니다. 아래 예에서 스크랩의 ID와 함께 원하는 스크랩 상태를 전달하여 표시합니다. ScrapeStatus 에 열거하다 SetScrapeStatus 방법.

GrabzItScrapeClient client = new GrabzItScrapeClient("Sign in to view your Application Key", "Sign in to view your Application Secret");
//Get all of our scrapes
GrabzItScrape[] myScrapes = client.GetScrapes();
if (myScrapes.Length == 0)
{
    throw new Exception("You haven't created any scrapes yet! Create one here: https://grabz.it/scraper/scrape.aspx");
}
//Start the first scrape
client.SetScrapeStatus(myScrapes[0].ID, ScrapeStatus.Start);
if (myScrapes[0].Results.Length > 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(string id) -원하는 스크랩을 나타내는 GrabzItScrape 객체를 반환합니다.
  • bool SetScrapeProperty(string id, IProperty property) -설정 긁힘의 속성 성공하면 true를 반환합니다.
  • bool SetScrapeStatus(string id, ScrapeStatus status) -긁힘 상태를 설정하고 성공하면 true를 반환합니다.
  • bool SendResult(string id, string resultId) -스크랩 결과를 다시 보내고 성공하면 true를 리턴합니다.
    • 스크랩 ID 및 결과 ID는 GetScrape 메소드에서 찾을 수 있습니다.
  • SetLocalProxy (string proxyUrl) -모든 요청에 ​​사용할 로컬 프록시 서버를 설정합니다.