כלים ללכידה ולהמרה של האינטרנט

PHP Scraper API עם GrabzItממשק API של מגרד PHP

ממשק ה- API של מגרד ה- 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 אז הוא פשוט saveמדריך לתוצאות. בעוד שכיתת ScrapeResult אכן מנסה להבטיח שכל הקבצים שפורסמו מקורם בשרתים של GrabzIt. יש לבדוק את סיומת הקבצים גם לפני שהם saved.

שיטות ScrapeResult

להלן כל השיטות של מחלקת ScrapeResult שניתן להשתמש בהן כדי לעבד תוצאות גרד.

  • string getExtension() - מקבל הרחבה של כל קובץ הנובע מהגרד.
  • string getFilename() - מקבל את שם הקובץ של כל קובץ הנובע מהגרד.
  • object toJSON() - ממיר כל קובץ JSON הנובע מהגרד into חפץ.
  • string toString() - ממיר כל קובץ הנובע מהגרד ל- string.
  • SimpleXMLElement toXML() - ממיר כל קובץ XML הנובע מהגרד לאלמנט XML.
  • boolean save($path) - saves כל קובץ הנובע מהשריטה, חוזר ונכון אם הוא מצליח.

Debugging

הדרך הטובה ביותר לבצע איתור באגים במנהל ה- PHP שלך היא להוריד את התוצאות עבור גירוד מה- שריטות אינטרנט עמוד. לאחר מכן save את הקובץ שאיתו אתה נתקל במיקום נגיש. לאחר מכן ניתן לעבור את הנתיב של קובץ זה לבונה של מחלקת ScrapeResult. זה מאפשר לך לבצע ניפוי של המטפל שלך מבלי שתצטרך לבצע גירוד חדש בכל פעם, כמוצג להלן.

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

//the rest of your handler code remains the same

שליטה על שריטה

עם ממשק ה- API של GrabzIt Web Scraper אתה יכול לשנות את הסטטוס של הגרד. על ידי התחלה מרחוק, עצירה, הפעלה או השבתה של שריטה לפי הצורך. זה מוצג בדוגמה למטה. על ידי העברת תעודת הזהות של השריטה יחד עם סטטוס הגרד הרצוי ל 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

להלן כל השיטות והתכונות של מחלקת GrabzItScrapeClient בהן ניתן להשתמש כדי לשלוט על שריטות האינטרנט.

  • GrabzItScrape[] GetScrapes() - מחזירה את כל הגריטות של המשתמשים כמערך של אובייקטים של GrabzItScrape.
  • GrabzItScrape GetScrape($id) - מחזיר אובייקט GrabzItScrape המייצג את הגרד הרצוי.
  • SetScrapeProperty($id, $property) - מגדיר את רכוש של גרד וחוזר נכון אם מצליח.
  • SetScrapeStatus($id, $status) - מגדיר את הסטטוס ("התחל", "עצור", "הפעל", "השבת") של גרד ומחזיר אמת אם מצליח.
  • SendResult($id, $resultId) - שולח שוב את התוצאה של הגרד ומחזיר אמת אם מצליח.
    • ניתן למצוא את מזהה השריטה ומזהה התוצאה משיטת GetScrape.
  • SetLocalProxy($proxyUrl) - מגדיר את שרת ה- Proxy המקומי שישמש לכל הבקשות.