ਵੈੱਬ ਨੂੰ ਕੈਪਚਰ ਅਤੇ ਕਨਵਰਟ ਕਰਨ ਲਈ ਟੂਲ

ASP.NET ਲਈ ਵੈੱਬ ਸਕ੍ਰੈਪਰ API ASP.NET ਸਕ੍ਰੈਪਰ API

ਸਭ ਤੋ ਪਹਿਲਾਂ ਡਾਊਨਲੋਡ ਅਰੰਭ ਕਰਨ ਲਈ ਨਮੂਨੇ ਦੇ ਵੈਬ ਪ੍ਰੋਜੈਕਟ ਵਿਚ ਸਥਿਤ ਹੈਡਲਰੈਸ਼ੈਕਸ ਦਾ ਮੁਆਇਨਾ ਕਰਨ ਅਤੇ ਏਐਸਪੀ.ਨੇਟ ਲਈ ਵੈੱਬ ਸਕ੍ਰੈਪਰ ਏਪੀਆਈ.

ਸਕ੍ਰੈਪਡ ਡੇਟਾ ਦੀ ਪ੍ਰਕਿਰਿਆ ਕਰੋ

ਸਕ੍ਰੈਪਡ ਡੇਟਾ ਨੂੰ ਪ੍ਰਕਿਰਿਆ ਕਰਨ ਦਾ ਸਭ ਤੋਂ ਸੌਖਾ ਤਰੀਕਾ ਹੈ ਕਿ JSON ਜਾਂ XML ਆਬਜੈਕਟ ਦੇ ਤੌਰ ਤੇ ਡਾਟਾ ਤਕ ਪਹੁੰਚਣਾ, ਕਿਉਂਕਿ ਇਹ ਡੇਟਾ ਨੂੰ ਅਸਾਨੀ ਨਾਲ ਹੇਰਾਫੇਰੀ ਕਰਨ ਅਤੇ ਪੁੱਛਗਿੱਛ ਕਰਨ ਦੇ ਯੋਗ ਕਰਦਾ ਹੈ. ਜੇ ਐੱਸ ਐੱਨ ਨੂੰ ਹੇਠਾਂ ਦਿੱਤੇ ਆਮ ਫਾਰਮੈਟ ਵਿਚ ਡੇਟਾਸੇਟ ਦੇ ਨਾਮ ਦੇ ਨਾਲ ਇਕਾਈ ਗੁਣ ਦੇ ਰੂਪ ਵਿਚ ਬਣਾਇਆ ਜਾਵੇਗਾ, ਜਿਸ ਵਿਚ ਆਪਣੇ ਆਪ ਵਿਚ ਹਰ ਇਕ ਕਾਲਮ ਦੇ ਨਾਮ ਦੇ ਨਾਲ ਇਕਾਈ ਦੀ ਇਕ ਐਰੇ ਸ਼ਾਮਲ ਹੋਵੇਗੀ.

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

ਸਭ ਤੋਂ ਪਹਿਲਾਂ ਇਹ ਯਾਦ ਰੱਖਣਾ ਲਾਜ਼ਮੀ ਹੈ ਕਿ ਹੈਂਡਲਰ ਨੂੰ ਸਾਰੇ ਸਕ੍ਰੈਪਡ ਡੇਟਾ ਭੇਜਿਆ ਜਾਵੇਗਾ, ਜਿਸ ਵਿੱਚ ਉਹ ਡੇਟਾ ਸ਼ਾਮਲ ਹੋ ਸਕਦਾ ਹੈ ਜੋ ਜੇਐਸਓਐਨ ਜਾਂ ਐਕਸਐਮਐਲ ਆਬਜੈਕਟ ਵਿੱਚ ਨਹੀਂ ਬਦਲਿਆ ਜਾ ਸਕਦਾ. ਇਸ ਲਈ ਪ੍ਰੋਸੈਸ ਕਰਨ ਤੋਂ ਪਹਿਲਾਂ ਤੁਹਾਡੇ ਦੁਆਰਾ ਪ੍ਰਾਪਤ ਕੀਤੇ ਜਾ ਰਹੇ ਡੇਟਾ ਦੀ ਜਾਂਚ ਕਰਨੀ ਲਾਜ਼ਮੀ ਹੈ.

ਹਾਲਾਂਕਿ ASP.NET API ਦੇ ਨਾਲ JSON ਜਾਂ XML ਫਾਈਲਾਂ ਨੂੰ ਪੜ੍ਹਨ ਲਈ ਇੱਕ ਵਾਧੂ ਕਦਮ ਲੋੜੀਂਦਾ ਹੈ, ਜਿਸ ਵਿੱਚ ਕਲਾਸਾਂ ਬਣਾਈਆਂ ਜਾਂਦੀਆਂ ਹਨ ਜੋ ਅਨੁਮਾਨਤ ਡੇਟਾ ਬਣਤਰ ਨਾਲ ਮੇਲ ਖਾਂਦੀਆਂ ਹਨ. ਇਸਦੀ ਉਦਾਹਰਣ ਹੇਠਾਂ ਦਰਸਾਈ ਗਈ ਸੀ ਜੇ ਉਪਰੋਕਤ JSON ਡੇਟਾ structureਾਂਚਾ ਰੱਖਣ ਲਈ ਦੋ ਸ਼੍ਰੇਣੀਆਂ ਦੀਆਂ ਪਰਿਭਾਸ਼ਾਵਾਂ ਬਣਾਈਆਂ ਗਈਆਂ ਸਨ.

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

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

ਇਹ ਕਲਾਸਾਂ ਹੁਣ JSON ਫਾਈਲ ਨੂੰ ਬਦਲਣ ਲਈ ਵਰਤੀਆਂ ਜਾਂਦੀਆਂ ਹਨ intoa ਵਰਤੋਂ ਯੋਗ objectਾਂਚਾ ਹੇਠਾਂ ਦਿੱਤੀ ਸਕ੍ਰੈਪਰੇਸਾਲਟ ਕੰਸਟਰਕਟਰ ਹੇਠਾਂ ਐੱਚਟੀਪੀਆਰਕੁਇਸਟ ਕਲਾਸ ਪ੍ਰਾਪਤ ਕਰ ਰਿਹਾ ਹੈ, ਹਾਲਾਂਕਿ ਇਹ ਏਐਸਪੀ.ਨੇਟ ਐਮਵੀਸੀ ਵੈਬ ਪ੍ਰੋਜੈਕਟਾਂ ਦੇ ਅਨੁਕੂਲ ਬਣਾਉਣ ਲਈ HTTPRequestBase ਕਲਾਸ ਨੂੰ ਵੀ ਸਵੀਕਾਰਦਾ ਹੈ.

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 ਜਾਇਦਾਦ. ਇਸ ਤੋਂ ਇਲਾਵਾ ਜੇ ਹੈਂਡਲਰ ਦੁਆਰਾ ਪ੍ਰਾਪਤ ਕੀਤੀ ਗਈ ਫਾਈਲ ਜੇਐਸਐਨ ਫਾਈਲ ਨਹੀਂ ਹੈ ਤਾਂ ਇਹ ਬਿਲਕੁਲ ਸਹੀ ਹੈ saved ਨਤੀਜੇ ਡਾਇਰੈਕਟਰੀ ਵਿੱਚ. ਜਦੋਂ ਕਿ ਸਕ੍ਰੈਪਰੇਸਾਲਟ ਕਲਾਸ ਇਹ ਸੁਨਿਸ਼ਚਿਤ ਕਰਨ ਦੀ ਕੋਸ਼ਿਸ਼ ਕਰਦੀ ਹੈ ਕਿ ਸਾਰੀਆਂ ਪੋਸਟ ਕੀਤੀਆਂ ਫਾਈਲਾਂ ਗਰੈਬਜ਼ਿਟ ਦੇ ਸਰਵਰਾਂ ਤੋਂ ਆਉਂਦੀਆਂ ਹਨ, ਫਾਈਲਾਂ ਦੇ ਵਿਸਥਾਰ ਦੀ ਜਾਂਚ ਵੀ ਕੀਤੀ ਜਾਣੀ ਚਾਹੀਦੀ ਹੈ saved.

ScrapeResult odੰਗ ਅਤੇ ਵਿਸ਼ੇਸ਼ਤਾ

ਹੇਠਾਂ ਸੂਚੀਬੱਧ ਕੀਤੇ ਗਏ ਸਾਰੇ ਸਕ੍ਰੈਪਰੇਸੈਲਟ ਕਲਾਸ ਦੇ theੰਗਾਂ ਅਤੇ ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ ਹਨ ਜੋ ਸਕ੍ਰੈਪ ਨਤੀਜਿਆਂ ਤੇ ਪ੍ਰਕਿਰਿਆ ਕਰਨ ਲਈ ਵਰਤੀਆਂ ਜਾ ਸਕਦੀਆਂ ਹਨ.

  • string Extension - ਸਕ੍ਰੈਪ ਦੇ ਨਤੀਜੇ ਵਜੋਂ ਕਿਸੇ ਵੀ ਫਾਈਲ ਦਾ ਐਕਸਟੈਂਸ਼ਨ ਪ੍ਰਾਪਤ ਕਰਦਾ ਹੈ.
  • string Filename - ਸਕ੍ਰੈਪ ਦੇ ਨਤੀਜੇ ਵਜੋਂ ਕਿਸੇ ਵੀ ਫਾਈਲ ਦਾ ਨਾਮ ਪ੍ਰਾਪਤ ਕਰਦਾ ਹੈ.
  • T FromJSON<T>() - ਸਕ੍ਰੈਪ ਦੇ ਨਤੀਜੇ ਵਜੋਂ ਕਿਸੇ ਵੀ JSON ਫਾਈਲ ਨੂੰ ਨਿਰਧਾਰਤ ਕਿਸਮ ਵਿੱਚ ਬਦਲਦਾ ਹੈ.
  • string ToString() - ਸਕ੍ਰੈਪ ਦੇ ਨਤੀਜੇ ਵਜੋਂ ਕਿਸੇ ਵੀ ਫਾਈਲ ਨੂੰ ਏ string.
  • T FromXML<T>() - ਸਕ੍ਰੈਪ ਦੇ ਨਤੀਜੇ ਵਜੋਂ ਕਿਸੇ ਵੀ ਐਕਸਐਮਐਲ ਫਾਈਲ ਨੂੰ ਨਿਰਧਾਰਤ ਕਿਸਮ ਵਿੱਚ ਬਦਲਦਾ ਹੈ.
  • boolean Save(string path) - saveਸਕ੍ਰੈਪ ਦੇ ਨਤੀਜੇ ਵਜੋਂ ਕੋਈ ਵੀ ਫਾਈਲ, ਜੇ ਇਹ ਸਫਲ ਹੁੰਦੀ ਹੈ ਤਾਂ ਸਹੀ ਵਾਪਸ ਆਉਂਦੀ ਹੈ.

ਡੀਬੱਗਿੰਗ

ਆਪਣੇ ASP.NET ਹੈਂਡਲਰ ਨੂੰ ਡੀਬੱਗ ਕਰਨ ਦਾ ਸਭ ਤੋਂ ਵਧੀਆ wayੰਗ ਹੈ, ਤੋਂ ਸਕ੍ਰੈਪ ਲਈ ਨਤੀਜੇ ਡਾ downloadਨਲੋਡ ਕਰਨਾ ਵੈਬ ਸਕ੍ਰੈਪਸ ਸਫ਼ਾ, save ਜਿਹੜੀ ਫਾਈਲ ਜਿਸ ਨਾਲ ਤੁਸੀਂ ਮੁਸ਼ਕਲ ਨਾਲ ਆ ਰਹੇ ਹੋ ਪਹੁੰਚਣ ਯੋਗ ਜਗ੍ਹਾ 'ਤੇ ਜਾ ਰਹੇ ਹੋ ਅਤੇ ਫਿਰ ਉਸ ਫਾਈਲ ਦਾ ਮਾਰਗ ਸਕ੍ਰੈਪਰੇਜਲਟ ਕਲਾਸ ਦੇ ਕੰਸਟਰਕਟਰ ਨੂੰ ਦਿਓ. ਇਹ ਤੁਹਾਨੂੰ ਹਰ ਵਾਰ ਨਵਾਂ ਸਕ੍ਰੈਪ ਕਰਨ ਤੋਂ ਬਿਨਾਂ ਆਪਣੇ ਹੈਂਡਲਰ ਨੂੰ ਡੀਬੱਗ ਕਰਨ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ, ਜਿਵੇਂ ਕਿ ਹੇਠਾਂ ਦਿਖਾਇਆ ਗਿਆ ਹੈ.

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

#the rest of your handler code remains the same

ਸਕ੍ਰੈਪ ਨੂੰ ਨਿਯੰਤਰਿਤ ਕਰਨਾ

ਗਰੈਬਜ਼ਿਟ ਦੇ ਵੈੱਬ ਸਕ੍ਰੈਪਰ ਏਪੀਆਈ ਦੇ ਨਾਲ ਤੁਸੀਂ ਸਕ੍ਰੈਪ ਦੀ ਉਸ ਸਥਿਤੀ ਨੂੰ ਬਦਲ ਸਕਦੇ ਹੋ, ਲੋੜ ਪੈਣ ਤੇ ਇੱਕ ਸਕ੍ਰੈਪ ਨੂੰ ਅਰੰਭ ਕਰਨਾ, ਰੋਕਣਾ ਜਾਂ ਅਯੋਗ ਕਰਨਾ. ਹੇਠਾਂ ਦਿੱਤੀ ਉਦਾਹਰਣ ਵਿੱਚ ਇਸ ਦੁਆਰਾ ਦਿੱਤੇ ਗਏ ਲੋੜੀਂਦੇ ਸਕ੍ਰੈਪ ਸਥਿਤੀ ਦੇ ਨਾਲ ਸਕ੍ਰੈਪ ਦੀ ਆਈਡੀ ਪਾਸ ਕਰਕੇ ਦਿਖਾਇਆ ਗਿਆ ਹੈ ScrapeStatus ਨੂੰ enum 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);
}

ਗਰੈਬਜ਼ਆਈਟਸਕ੍ਰੇਪ ਕਲੇਅਇੰਟ odੰਗ ਅਤੇ ਵਿਸ਼ੇਸ਼ਤਾ

ਹੇਠਾਂ ਸੂਚੀਬੱਧ ਕੀਤੇ ਗਏ ਗਰੈਬਜ਼ ਆਈਟਸਕਰੀਪ ਕਲਾਇੰਟ ਕਲਾਸ ਦੇ ਸਾਰੇ methodsੰਗਾਂ ਅਤੇ ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ ਹਨ ਜੋ ਸਕ੍ਰੈਪਸ ਨੂੰ ਨਿਯੰਤਰਿਤ ਕਰਨ ਲਈ ਵਰਤੀਆਂ ਜਾ ਸਕਦੀਆਂ ਹਨ.

  • GrabzItScrape[] GetScrapes() - ਉਪਭੋਗਤਾ ਦੇ ਸਾਰੇ ਸਕ੍ਰੈਪਸ ਵਾਪਸ ਕਰਦਾ ਹੈ, ਜਿਸ ਵਿੱਚ ਗਰੈਬਜ਼ਟ ਸਕ੍ਰੈਪ ਆਬਜੈਕਟ ਦੀ ਐਰੇ ਦੇ ਰੂਪ ਵਿੱਚ ਸਕ੍ਰੈਪ ਨਤੀਜੇ ਸ਼ਾਮਲ ਹੁੰਦੇ ਹਨ.
  • GrabzItScrape GetScrape(string id) - ਇੱਕ ਗਰੈਬਜ਼ਿਟਸਕ੍ਰੇਪ ਆਬਜੈਕਟ ਵਾਪਸ ਕਰਦਾ ਹੈ ਜਿਸ ਨਾਲ ਲੋੜੀਂਦੇ ਸਕ੍ਰੈਪ ਦੀ ਪ੍ਰਤੀਨਿਧਤਾ ਹੁੰਦੀ ਹੈ.
  • bool SetScrapeProperty(string id, IProperty property) - ਸੈੱਟ ਕਰਦਾ ਹੈ ਖੁਰਚਣ ਦੀ ਜਾਇਦਾਦ ਅਤੇ ਜੇ ਸਫਲ ਹੁੰਦਾ ਹੈ ਤਾਂ ਸਹੀ ਵਾਪਸੀ ਕਰਦਾ ਹੈ.
  • bool SetScrapeStatus(string id, ScrapeStatus status) - ਸਕ੍ਰੈਪ ਦੀ ਸਥਿਤੀ ਨਿਰਧਾਰਤ ਕਰਦਾ ਹੈ ਅਤੇ ਜੇ ਸਫਲ ਹੁੰਦਾ ਹੈ ਤਾਂ ਸਹੀ ਵਾਪਸ ਮਿਲਦਾ ਹੈ.
  • bool SendResult(string id, string resultId) - ਸਕ੍ਰੈਪ ਦੇ ਨਤੀਜੇ ਨੂੰ ਦੁਬਾਰਾ ਭੇਜਦਾ ਹੈ ਅਤੇ ਜੇ ਸਫਲ ਹੁੰਦਾ ਹੈ ਤਾਂ ਸਹੀ ਵਾਪਸ ਮਿਲਦਾ ਹੈ.
    • ਸਕ੍ਰੈਪ ਆਈਡੀ ਅਤੇ ਨਤੀਜਾ ਆਈਡੀ ਗੇਟਸਕ੍ਰੈਪ ਵਿਧੀ ਤੋਂ ਪਾਇਆ ਜਾ ਸਕਦਾ ਹੈ.
  • ਸੈੱਟਲੋਕਲ ਪ੍ਰੌਕਸੀ (string ਪ੍ਰੌਕਸੀਯੂਆਰਐਲ) - ਸਥਾਨਕ ਪ੍ਰੌਕਸੀ ਸਰਵਰ ਨੂੰ ਸਾਰੀਆਂ ਬੇਨਤੀਆਂ ਲਈ ਵਰਤਣ ਲਈ ਸੈੱਟ ਕਰਦਾ ਹੈ.