वेब पर कब्जा और परिवर्तित करने के लिए उपकरण

GrabzIt के साथ PHP स्क्रैपर एपीआईPHP खुरचनी एपीआई

हमारे PHP स्क्रैपर एपीआई GrabzIt के वेब स्क्रेपर की शक्ति को आपके ऐप में जोड़ने की अनुमति देता है। यह साधारण HTML DOM पार्सर की तुलना में बहुत बेहतर उपाय है, जिसे आमतौर पर PHP स्क्रैपिंग ऐप्स द्वारा कार्यान्वित किया जाता है।

आप के साथ शुरू करना होगा खुरचनी। फिर अपने ऐप में वेब को पार्स करने के लिए, आपको करना होगा डाउनलोड PHP लाइब्रेरी। अंत में, आरंभ करने के लिए, डाउनलोड के अंदर स्थित उदाहरण हैंडलर को देखें।

प्रोसेस किया हुआ डेटा

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

खुरचनी के तरीके

नीचे सूचीबद्ध ScrapeResult वर्ग के सभी तरीके हैं जो स्क्रैप परिणामों को संसाधित करने के लिए उपयोग किए जा सकते हैं।

  • string getExtension() - परिमार्जन के परिणामस्वरूप किसी भी फ़ाइल का विस्तार मिलता है।
  • string getFilename() - परिमार्जन के परिणामस्वरूप किसी भी फ़ाइल का फ़ाइल नाम मिलता है।
  • object toJSON() - परिमार्जन से उत्पन्न किसी JSON फ़ाइल को कनवर्ट करता है intएक वस्तु ओ।
  • string toString() - खुरचनी से उत्पन्न किसी भी फ़ाइल को एक में कनवर्ट करता है string.
  • SimpleXMLElement toXML() - एक XML तत्व के लिए परिमार्जन से उत्पन्न किसी भी XML फ़ाइल धर्मान्तरित।
  • boolean save($path) - saveकिसी भी फ़ाइल के परिमार्जन के फलस्वरूप, यदि वह सफल होती है तो वापस लौट आती है।

डीबगिंग

अपने PHP हैंडलर को डीबग करने का सबसे अच्छा तरीका है कि परिणामों को एक स्क्रैप से डाउनलोड करना वेब स्क्रैप पृष्ठ। फिर save वह फ़ाइल जिसे आप किसी सुलभ स्थान पर जारी कर रहे हैं। इस फ़ाइल का पथ तब ScrapeResult वर्ग के निर्माता को दिया जा सकता है। यह आपको अपने हैंडलर को हर बार एक नया परिमार्जन किए बिना डीबग करने की अनुमति देता है, जैसा कि नीचे दिखाया गया है।

$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);
}

GrabzItSrapeClient के तरीके और गुण

नीचे सूचीबद्ध सभी तरीके और GrabzItScrapeClient वर्ग के गुण हैं जिनका उपयोग वेब स्क्रैप को नियंत्रित करने के लिए किया जा सकता है।

  • GrabzItScrape[] GetScrapes() - GrabzItScrape ऑब्जेक्ट की एक सरणी के रूप में सभी उपयोगकर्ताओं को स्क्रैप करता है।
  • GrabzItScrape GetScrape($id) - वांछित स्क्रेप का प्रतिनिधित्व करने वाली GrabzItScrape ऑब्जेक्ट देता है।
  • SetScrapeProperty($id, $property) - सेट करता है एक परिमार्जन की संपत्ति और सफल होने पर वापस लौटता है।
  • SetScrapeStatus($id, $status) - एक परिमार्जन की स्थिति ("प्रारंभ", "रोकें", "सक्षम करें," अक्षम ") सेट करता है और सफल होने पर वापस लौटता है।
  • SendResult($id, $resultId) - एक परिमार्जन का परिणाम हल करता है और सफल होने पर वापस लौटता है।
    • स्क्रेप आईडी और रिजल्ट आईडी को गेटस्क्रेप विधि से पाया जा सकता है।
  • SetLocalProxy($proxyUrl) - सभी अनुरोधों के लिए उपयोग किए जाने वाले स्थानीय प्रॉक्सी सर्वर को सेट करता है।