أدوات لالتقاط وتحويل الويب

PHP Scraper API مع GrabzItPHP مكشطة API

تسمح واجهة برمجة تطبيقات PHP Scraper الخاصة بنا بإضافتها إلى تطبيق GrabzIt's Web Scraper. هذا حل أفضل بكثير من محلل 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 التي يمكن استخدامها لمعالجة نتائج scrape.

  • 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's Web Scraper API ، يمكنك تغيير حالة الكشط. من خلال البدء عن بعد أو إيقاف أو تمكين أو تعطيل أي كشط حسب الحاجة. هذا يظهر في المثال أدناه. من خلال تمرير معرف كشط جنبا إلى جنب مع حالة كشط المطلوب إلى 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() - إرجاع كافة المستخدمين scrapes كصفيف لكائنات GrabzItScrape.
  • GrabzItScrape GetScrape($id) - إرجاع كائن GrabzItScrape الذي يمثل الكشط المرغوب.
  • SetScrapeProperty($id, $property) - يحدد خاصية كشط وتعود صحيحا إذا نجحت.
  • SetScrapeStatus($id, $status) - يضبط الحالة ("ابدأ" ، "إيقاف" ، "تمكين" ، "تعطيل") للخردة وتعود صحيحة إذا نجحت.
  • SendResult($id, $resultId) - يعيد إرسال نتيجة الخردة ويعود صحيحًا إذا نجح.
    • يمكن العثور على معرف الكشط ومعرّف النتيجة من أسلوب GetScrape.
  • SetLocalProxy($proxyUrl) - يحدد خادم البروكسي المحلي ليتم استخدامه لجميع الطلبات.