ویب پر گرفت اور تبدیل کرنے کے اوزار

GrabzIt کے ساتھ پی ایچ پی سکریپر APIپی ایچ پی سکریپر API

ہمارا پی ایچ پی سکریپر API GrabzIt کے ویب سکریپر کی طاقت کو آپ کے ایپ میں شامل کرنے کی اجازت دیتا ہے۔ عام HTML پی او ایم اسکریپنگ ایپس کے ذریعہ نافذ کردہ ، سادہ ایچ ٹی ایم ایل ڈوم پارسروں کے مقابلے میں یہ بہت بہتر حل ہے۔

آپ کے ساتھ شروع کرنے کے لئے کھرچنا پیدا کریں. پھر اپنی ایپ میں ویب کی تجزیہ کرنے کے ل you ، آپ کو لازمی طور پر ضروری ہے ڈاؤن لوڈ، اتارنا پی ایچ پی کی لائبریری۔ آخر میں ، شروع کرنے کے لئے ، ڈاؤن لوڈ کے اندر واقع ہینڈلر کو دیکھیں۔

سکریپڈ ڈیٹا پر کارروائی کریں

سکریپڈ ڈیٹا پر کارروائی کرنے کا آسان ترین طریقہ یہ ہے کہ JSON یا XML آبجیکٹ کی حیثیت سے ڈیٹا تک رسائی حاصل کی جائے۔ چونکہ اس سے اعداد و شمار آسانی سے جوڑ توڑ اور باز پرس کر سکتے ہیں۔ JSON کو مندرجہ ذیل عمومی شکل میں تشکیل دیا جائے گا ، جس میں ڈیٹاسیٹ نام کے ساتھ آبجیکٹ وصف کی حیثیت سے ہے۔ خود ہر کالم کے نام کے ساتھ ایک اور خاصیت کے بطور اشیاء کی ایک صف پر مشتمل ہے۔

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

سب سے پہلے یہ یاد رکھنا ضروری ہے کہ ہینڈلر کو تمام نکالا ہوا ڈیٹا بھیجا جائے گا۔ اس میں ایسا ڈیٹا شامل ہوسکتا ہے جسے جے ایس اوون یا ایکس ایم ایل اشیاء میں تبدیل نہیں کیا جاسکتا ہے۔ لہذا عمل کرنے سے پہلے آپ جو قسم کا ڈیٹا وصول کررہے ہیں اس کی جانچ پڑتال ضروری ہے۔

$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نتائج کی ڈائرکٹری سے ڈی۔ جبکہ سکریپ ریسلٹ کلاس یہ یقینی بنانے کی کوشش کرتی ہے کہ تمام پوسٹ شدہ فائلیں گربزائٹ کے سرورز سے شروع ہوں۔ فائلوں کے ہونے سے پہلے ان کی توسیع بھی چیک کی جانی چاہئے saved.

سکریپ ریسلٹ کے طریقے

سکریپ ریسلٹ کلاس کے تمام طریقے ذیل میں درج ہیں جو کھرچنے کے نتائج پر کارروائی کرنے کے لئے استعمال ہوسکتے ہیں۔

  • string getExtension() - کھرچنی کے نتیجے میں کسی بھی فائل کی توسیع ملتی ہے۔
  • string getFilename() - کھرچنی کے نتیجے میں کسی بھی فائل کا فائل نام مل جاتا ہے۔
  • object toJSON() - کھرچنی کے نتیجے میں کسی بھی JSON فائل کو تبدیل کرتا ہے into ایک شے
  • string toString() - کھرچنے کے نتیجے میں کسی بھی فائل کو a میں تبدیل کرتا ہے string.
  • SimpleXMLElement toXML() - کھرچنے کے نتیجے میں کسی بھی XML فائل کو XML عنصر میں تبدیل کرتا ہے۔
  • boolean save($path) - saveکسی بھی فائل کو کھرچنے کے نتیجے میں ، اگر وہ کامیاب ہوجاتی ہے تو اس کی سچائی واپس آجاتی ہے۔

ٹھیک کرنا

آپ کے پی ایچ پی ہینڈلر کو ڈیبگ کرنے کا بہترین طریقہ یہ ہے کہ نتائج کو اسکریپ کے لئے ڈاؤن لوڈ کریں ویب سکریپس صفحہ پھر save ایک قابل رسائی جگہ پر آپ کو جس فائل کا مسئلہ ہو رہا ہے۔ اس فائل کا راستہ پھر سکریپ ریسلٹ کلاس کے کنسٹرکٹر کے پاس جاسکتا ہے۔ جیسا کہ ذیل میں دکھایا گیا ہے ، ہر بار نیا کھرچنا کئے بغیر آپ کو اپنے ہینڈلر کو ڈیبگ کرنے کی اجازت دیتا ہے۔

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

//the rest of your handler code remains the same

کھرچنا کو کنٹرول کرنا

GrabzIt کے ویب سکریپر API کے ذریعہ ، آپ کھرچنے کی اس کیفیت کو تبدیل کرسکتے ہیں۔ ضرورت کے مطابق کسی کھرچنے کو دور سے شروع ، روکنے ، چالو کرنے یا ان کو غیر فعال کرنے کے ذریعے۔ یہ ذیل کی مثال میں دکھایا گیا ہے۔ مطلوبہ سکریپ کی حیثیت کے ساتھ اسکریپ کی ID کو پاس کرکے 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 GetScrape($id) - ایک GrabzItScrape آبجیکٹ کو مطلوبہ کھرچ کی نمائندگی کرتا ہے۔
  • SetScrapeProperty($id, $property) - سیٹ کرتا ہے کھرچنی کی خاصیت اور اگر کامیاب ہو تو صحیح لوٹ آتا ہے۔
  • SetScrapeStatus($id, $status) - کسی سکریپ کی حیثیت ("اسٹارٹ" ، "اسٹاپ" ، "قابل بنائیں" ، "غیر فعال") کا تعین کرتا ہے اور اگر کامیاب ہوتا ہے تو اس کا حق واپس آتا ہے۔
  • SendResult($id, $resultId) - کھرچنا کے نتیجہ کو دوبارہ بھیجتا ہے اور اگر کامیاب ہوتا ہے تو سچ واپس آجاتا ہے۔
    • سکریپ آئی ڈی اور نتیجہ کی شناخت گیٹ اسکریپ کے طریقہ کار سے حاصل کی جاسکتی ہے۔
  • SetLocalProxy($proxyUrl) - تمام درخواستوں کے لئے استعمال ہونے والا مقامی پراکسی سرور متعین کرتا ہے۔