ਸਭ ਤੋ ਪਹਿਲਾਂ ਡਾਊਨਲੋਡ ਅਰੰਭ ਕਰਨ ਲਈ ਨਮੂਨੇ ਦੇ ਵੈਬ ਪ੍ਰੋਜੈਕਟ ਵਿਚ ਸਥਿਤ ਹੈਡਲਰੈਸ਼ੈਕਸ ਦਾ ਮੁਆਇਨਾ ਕਰਨ ਅਤੇ ਏਐਸਪੀ.ਨੇਟ ਲਈ ਵੈੱਬ ਸਕ੍ਰੈਪਰ ਏਪੀਆਈ.
ਸਕ੍ਰੈਪਡ ਡੇਟਾ ਨੂੰ ਪ੍ਰਕਿਰਿਆ ਕਰਨ ਦਾ ਸਭ ਤੋਂ ਸੌਖਾ ਤਰੀਕਾ ਹੈ ਕਿ 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.
ਹੇਠਾਂ ਸੂਚੀਬੱਧ ਕੀਤੇ ਗਏ ਸਾਰੇ ਸਕ੍ਰੈਪਰੇਸੈਲਟ ਕਲਾਸ ਦੇ theੰਗਾਂ ਅਤੇ ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ ਹਨ ਜੋ ਸਕ੍ਰੈਪ ਨਤੀਜਿਆਂ ਤੇ ਪ੍ਰਕਿਰਿਆ ਕਰਨ ਲਈ ਵਰਤੀਆਂ ਜਾ ਸਕਦੀਆਂ ਹਨ.
ਆਪਣੇ 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/"); } //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); }
ਹੇਠਾਂ ਸੂਚੀਬੱਧ ਕੀਤੇ ਗਏ ਗਰੈਬਜ਼ ਆਈਟਸਕਰੀਪ ਕਲਾਇੰਟ ਕਲਾਸ ਦੇ ਸਾਰੇ methodsੰਗਾਂ ਅਤੇ ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ ਹਨ ਜੋ ਸਕ੍ਰੈਪਸ ਨੂੰ ਨਿਯੰਤਰਿਤ ਕਰਨ ਲਈ ਵਰਤੀਆਂ ਜਾ ਸਕਦੀਆਂ ਹਨ.