वेब कॅप्चर आणि रूपांतरित करण्यासाठी साधने

ASP.NET साठी वेब स्क्रॅपर API ASP.NET स्क्रॅपर API

सर्वप्रथम डाउनलोड प्रारंभ करण्यासाठी नमुना वेब प्रोजेक्टमध्ये असलेल्या एएसपी.नेट आणि वेबवरील स्क्रॅपर एपीपी तपासणी करा.

स्क्रॅप केलेला डेटा प्रक्रिया करा

स्क्रॅप केलेल्या डेटावर प्रक्रिया करण्याचा सर्वात सोपा मार्ग म्हणजे जेएसओएन किंवा एक्सएमएल ऑब्जेक्ट म्हणून डेटामध्ये प्रवेश करणे, कारण यामुळे डेटा सहजपणे हाताळला जाऊ शकतो आणि चौकशी केली जाऊ शकते. JSON खालील सर्वसाधारण स्वरूपात डेटासेट नावाने ऑब्जेक्ट विशेषता म्हणून संरचित केले जाईल, ज्यात स्वतःच प्रत्येक स्तंभ नावाचे ऑब्जेक्ट्सचे अ‍ॅरे असते ज्यास दुसर्या विशेषता आहेत.

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

सर्व प्रथम हे लक्षात ठेवणे आवश्यक आहे की हँडलरला सर्व स्क्रॅप केलेला डेटा पाठविला जाईल, ज्यामध्ये जेएसओएन किंवा एक्सएमएल ऑब्जेक्ट्समध्ये रुपांतरित न होऊ शकणारा डेटा असू शकेल. म्हणूनच प्रक्रिया करण्यापूर्वी आपण प्राप्त करीत असलेल्या डेटाचा प्रकार तपासला जाणे आवश्यक आहे.

तथापि एएसपी.नेट एपीआय सह जेएसओएन किंवा एक्सएमएल फायली वाचण्यासाठी अतिरिक्त चरण आवश्यक आहे, ज्यामध्ये वर्ग तयार केले जातात जे अपेक्षित डेटा स्ट्रक्चरशी जुळतात. खाली दिलेली JSON डेटा स्ट्रक्चर ठेवण्यासाठी दोन वर्ग परिभाषा तयार केल्याचे याचे उदाहरण खाली दिले आहे.

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

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

हे वर्ग आता जेएसओएन फाइल रूपांतरित करण्यासाठी वापरले जात आहेत intवापरण्यायोग्य ऑब्जेक्ट स्ट्रक्चर. खाली स्क्रॅपरेस्ल्ट कन्स्ट्रक्टरच्या उदाहरणामध्ये एचटीपीपीकेक्वेस्ट क्लास प्राप्त होत आहे, तथापि ते एएसपी.नेट नेट एमव्हीसी वेब प्रोजेक्ट्सशी सुसंगत करण्यासाठी एचटीपीआरक्वेस्टबेस क्लास देखील स्वीकारतो.

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 मालमत्ता. हँडलरकडून प्राप्त केलेली फाईल जेएसओएन फाइल नसल्यास ती फक्त योग्य आहे saveडी परिणामांची निर्देशिका. ScrapeResult क्लास सर्व पोस्ट केलेल्या फायली GrabzIt च्या सर्व्हरमधून उद्भवल्या आहेत हे सुनिश्चित करण्याचा प्रयत्न करीत असताना फायलींचा विस्तार देखील होण्यापूर्वी तपासला गेला पाहिजे. saved.

ScrapeResult पद्धती आणि गुणधर्म

स्क्रॅपरेस्सल्ट क्लासच्या सर्व पद्धती आणि गुणधर्म खाली सूचीबद्ध केल्या आहेत ज्याचा वापर स्क्रॅप परिणामांवर प्रक्रिया करण्यासाठी केला जाऊ शकतो.

  • string Extension - स्क्रॅपमुळे उद्भवणार्‍या कोणत्याही फाईलचा विस्तार होतो.
  • string Filename - स्क्रॅपमुळे उद्भवणार्‍या कोणत्याही फाईलचे फाइलनाव प्राप्त करते.
  • T FromJSON<T>() - स्क्रॅपमुळे उद्भवलेल्या कोणत्याही JSON फाईलला निर्दिष्ट प्रकारात रुपांतरीत करते.
  • string ToString() - स्क्रॅपच्या परिणामी कोणत्याही फाईलला अ मध्ये रुपांतरित करते string.
  • T FromXML<T>() - स्क्रॅपमुळे उद्भवलेल्या कोणत्याही एक्सएमएल फाईलस निर्दिष्ट प्रकारात रुपांतरीत करते.
  • boolean Save(string path) - saveस्क्रॅपमुळे उद्भवणारी कोणतीही फाईल ती यशस्वी झाल्यास सत्य परत करते.

डीबग करणे

आपल्या ASP.NET हँडलर डीबग करण्याचा उत्तम मार्ग म्हणजे वरून स्क्रॅपसाठी निकाल डाउनलोड करणे वेब स्क्रॅप्स पृष्ठ, 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);
}

GrabzItScrapeClient पद्धती आणि गुणधर्म

खाली सूचीबद्ध केलेल्या सर्व प्रकारच्या पद्धती आणि गुणधर्म खाली स्क्रॅप्स नियंत्रित करण्यासाठी वापरल्या जाणार्‍या ग्रॅबझिटस्क्रेप क्लायंट वर्गाच्या आहेत.

  • GrabzItScrape[] GetScrapes() - सर्व वापरकर्त्यांना स्क्रॅप्स मिळवते, ज्यात स्क्रॅप परिणाम ग्रॅबझीटस्क्रॅप ऑब्जेक्ट्सचा अ‍ॅरे म्हणून समाविष्ट आहे.
  • GrabzItScrape GetScrape(string id) - इच्छित स्क्रॅपचे प्रतिनिधित्व करणारा एक GrabzItScrape ऑब्जेक्ट परत करते.
  • bool SetScrapeProperty(string id, IProperty property) - सेट करते स्क्रॅपची मालमत्ता आणि यशस्वी झाल्यास सत्य मिळवते.
  • bool SetScrapeStatus(string id, ScrapeStatus status) - स्क्रॅपची स्थिती निश्चित करते आणि यशस्वी झाल्यास सत्य मिळवते.
  • bool SendResult(string id, string resultId) - स्क्रॅपचा निकाल पुन्हा पाठवितो आणि यशस्वी झाल्यास सत्य परत येईल.
    • स्क्रॅप आयडी आणि निकाल आयडी गेटस्क्रेप पद्धतीतून आढळू शकतो.
  • सेटलोकप्रॉक्सी (string प्रॉक्सीयूआरएल) - सर्व विनंत्यांसाठी वापरण्यासाठी स्थानिक प्रॉक्सी सर्व्हर सेट करते.