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

ग्रॅबझिटसह पीएचपी स्क्रॅपर एपीआयPHP स्क्रॅपर 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 = new \GrabzIt\Scraper\ScrapeResult();

if ($scrapeResult->getExtension() == 'json')
{
    $json = $scrapeResult->toJSON();
    foreach ($json->Dataset_Name as $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 गुणधर्म. हँडलरकडून प्राप्त केलेली फाईल जेएसओएन फाइल नसल्यास ती फक्त योग्य आहे saveडी परिणामांची निर्देशिका. ScrapeResult क्लास सर्व पोस्ट केलेल्या फायली GrabzIt च्या सर्व्हरमधून आल्या असल्याचे सुनिश्चित करण्याचा प्रयत्न करीत असताना. फायलींचा विस्तार होण्यापूर्वी त्यांची तपासणी देखील केली पाहिजे saved.

ScrapeResult पद्धती

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

  • string getExtension() - स्क्रॅपमुळे उद्भवणार्‍या कोणत्याही फाईलचा विस्तार होतो.
  • string getFilename() - स्क्रॅपमुळे उद्भवणार्‍या कोणत्याही फाईलचे फाइलनाव प्राप्त करते.
  • object toJSON() - स्क्रॅपमुळे उद्भवलेल्या कोणत्याही JSON फाईलचे रुपांतर करते intओ ऑब्जेक्ट
  • string toString() - स्क्रॅपच्या परिणामी कोणत्याही फाईलला अ मध्ये रुपांतरित करते string.
  • SimpleXMLElement toXML() - स्क्रॅपमुळे उद्भवलेल्या कोणत्याही एक्सएमएल फाईलचे एक्सएमएल एलिमेंटमध्ये रुपांतर करते.
  • boolean save($path) - saveस्क्रॅपमुळे उद्भवणारी कोणतीही फाईल ती यशस्वी झाल्यास सत्य परत करते.

डीबग करणे

आपल्या पीएचपी हँडलर डीबग करण्याचा उत्तम मार्ग म्हणजे वरून स्क्रॅपसाठी निकाल डाउनलोड करणे वेब स्क्रॅप्स पृष्ठ मग save प्रवेश करण्यायोग्य स्थानासह आपल्यास ज्या फायलीची समस्या आहे त्या फाईल. त्यानंतर या फाईलचा मार्ग स्क्रॅपरेस्ल्ट क्लासच्या कन्स्ट्रक्टरकडे जाऊ शकतो. हे खाली दर्शविल्यानुसार प्रत्येक वेळी नवीन स्क्रॅप न करता आपल्या हँडलर डीबग करण्यास अनुमती देते.

$scrapeResult = new \GrabzIt\Scraper\ScrapeResult("data.json");

//the rest of your handler code remains the same

स्क्रॅप नियंत्रित करणे

GrabzIt च्या वेब स्क्रॅपर एपीआय सह आपण स्क्रॅपची ती स्थिती बदलू शकता. आवश्यकतेनुसार दूरस्थपणे स्क्रॅप सुरू करणे, थांबविणे, सक्षम करणे किंवा अक्षम करून. हे खाली दिलेल्या उदाहरणात दर्शविले आहे. इच्छित स्क्रॅप स्थितीसह स्क्रॅपचा आयडी पास करून SetScrapeStatus पद्धत

$client = new \GrabzIt\Scraper\GrabzItScrapeClient("Sign in to view your Application Key", "Sign in to view your Application Secret");
//Get all of our scrapes
$myScrapes = $client->GetScrapes();
if (empty($myScrapes))
{
    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, "Start");
if (count($myScrapes[0]->Results) > 0)
{
    //re-send first scrape result if it exists
    $client->SendResult($myScrapes[0]->ID, $myScrapes[0]->Results[0]->ID);
}

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

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

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