વેબને કેપ્ચર અને કન્વર્ટ કરવા માટેનાં સાધનો

GrabzIt સાથે PHP સ્ક્રેપર APIPHP સ્ક્રેપર API

અમારું PHP સ્ક્રેપર API તમારી એપ્લિકેશનમાં GrabzIt ની વેબ સ્ક્રેપરની શક્તિ ઉમેરવાની મંજૂરી આપે છે. આ સામાન્ય એચટીએમએલ ડોમ પાર્સર્સ કરતા વધુ સારો ઉકેલો છે, સામાન્ય રીતે PHP સ્ક્રેપિંગ એપ્લિકેશનો દ્વારા અમલમાં મૂકવામાં આવે છે.

તમારી સાથે પ્રારંભ કરવા માટે જ જોઈએ એક સ્ક્રેપ બનાવો. પછી તમારી એપ્લિકેશનમાં વેબનું વિશ્લેષણ કરવા માટે, તમારે આવશ્યક છે ડાઉનલોડ કરો PHP, લાઇબ્રેરી. અંતે, પ્રારંભ કરવા માટે, ડાઉનલોડની અંદર સ્થિત ઉદાહરણ હેન્ડલર જુઓ.

પ્રક્રિયા સ્ક્રpedપ કરેલો ડેટા

સ્ક્રેપ કરેલા ડેટા પર પ્રક્રિયા કરવાનો સૌથી સહેલો રસ્તો એ છે કે જેએસએન અથવા એક્સએમએલ asબ્જેક્ટ તરીકે ડેટાને .ક્સેસ કરવો. જેમ કે આ ડેટા સરળતાથી ચાલાકી અને ક્વેરી કરવા માટે સક્ષમ કરે છે. જેએસઓએન નીચેના સામાન્ય બંધારણમાં, theબ્જેક્ટ લક્ષણ તરીકે ડેટાસેટ નામ સાથે રચાયેલ હશે. તે બીજા લક્ષણ તરીકે દરેક ક columnલમ નામ સાથે objectsબ્જેક્ટ્સની ઝાકઝમાળ ધરાવે છે.

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

સૌ પ્રથમ તે યાદ રાખવું આવશ્યક છે કે હેન્ડલરને બધા કા extેલા ડેટા મોકલવામાં આવશે. આમાં તે ડેટા શામેલ હોઈ શકે છે જે JSON અથવા XML toબ્જેક્ટ્સમાં રૂપાંતરિત કરી શકાતી નથી. તેથી પ્રક્રિયા કરવામાં આવે તે પહેલાં તમે કયા પ્રકારનાં ડેટા પ્રાપ્ત કરી રહ્યાં છો તે તપાસવું આવશ્યક છે.

$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ડી ડિરેક્ટરીમાં ડી. જ્યારે સ્ક્રpeપ રિઝલ્ટ વર્ગ ખાતરી કરે છે કે બધી પોસ્ટ કરેલી ફાઇલો ગ્રાબઝિટના સર્વરોથી ઉદ્ભવે છે. ફાઇલોના વિસ્તરણની તપાસ કરતાં પહેલાં તે તપાસવું જોઈએ saved.

સ્ક્રેપરેઝલ્ટ પદ્ધતિઓ

નીચે સૂચિબદ્ધ એ સ્ક્રેપરેઝલ્ટ વર્ગની બધી પદ્ધતિઓ છે જેનો ઉપયોગ સ્ક્રેપ પરિણામો પર પ્રક્રિયા કરવા માટે થઈ શકે છે.

  • string getExtension() - સ્ક્રેપના પરિણામે કોઈપણ ફાઇલના વિસ્તરણને મેળવે છે.
  • string getFilename() - સ્ક્રેપના પરિણામે કોઈપણ ફાઇલનું ફાઇલનામ મેળવે છે.
  • object toJSON() - સ્ક્રેપથી પરિણમેલી કોઈપણ JSON ફાઇલને રૂપાંતરિત કરે છે intઓ પદાર્થ.
  • string toString() - સ્ક્રેપથી પરિણમેલી કોઈપણ ફાઇલને a માં ફેરવે છે string.
  • SimpleXMLElement toXML() - સ્ક્રેપથી પરિણમેલી કોઈપણ XML ફાઇલને XML એલિમેન્ટમાં ફેરવે છે.
  • boolean save($path) - saveઓ સ્ક્રેપથી પરિણમેલી કોઈપણ ફાઇલ, જો તે સફળ થાય તો સાચું પાછું આપે છે.

ડિબગીંગ

તમારા PHP હેન્ડલરને ડીબગ કરવાની શ્રેષ્ઠ રીત એ છે કે સ્ક્રેપ માટેનાં પરિણામોને વેબ સ્ક્રેપ્સ પૃષ્ઠ. પછી save theક્સેસિબલ સ્થાન પર તમને જે ફાઇલની સમસ્યાનો સામનો કરવો પડી રહ્યો છે. ત્યારબાદ આ ફાઇલનો માર્ગ સ્ક્રેપેરેસલ્ટ ક્લાસના કન્સ્ટ્રક્ટરને પસાર કરી શકાય છે. નીચે બતાવ્યા પ્રમાણે આ તમને દર વખતે નવી સ્ક્રેપ કર્યા વિના તમારા હેન્ડલરને ડિબગ કરવાની મંજૂરી આપે છે.

$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 પદ્ધતિઓ અને ગુણધર્મો

નીચે સૂચિબદ્ધ એ GrabzItScrapeClient વર્ગની બધી પદ્ધતિઓ અને ગુણધર્મો છે જેનો ઉપયોગ વેબ સ્ક્રેપ્સને નિયંત્રિત કરવા માટે થઈ શકે છે.

  • GrabzItScrape[] GetScrapes() - GrabzItScrape ofબ્જેક્ટ્સના એરે તરીકે બધા વપરાશકર્તાઓના સ્ક્રેપ્સને આપે છે.
  • GrabzItScrape GetScrape($id) - ઇચ્છિત સ્ક્રેપનું પ્રતિનિધિત્વ કરતું એક GrabzItScrape .બ્જેક્ટ પરત આપે છે.
  • SetScrapeProperty($id, $property) - સુયોજિત કરે છે સ્ક્રેપની મિલકત અને સફળ થાય તો સાચું વળતર આપે છે.
  • SetScrapeStatus($id, $status) - સ્ક્રેપની સ્થિતિ ("પ્રારંભ", "રોકો", "સક્ષમ કરો", "અક્ષમ કરો") સેટ કરે છે અને જો સફળ થાય તો સાચું પરત આપે છે.
  • SendResult($id, $resultId) - સ્ક્રેપનું પરિણામ ફરીથી મોકલે છે અને જો સફળ થાય તો સાચું પરત આપે છે.
    • સ્ક્રેપ આઈડી અને પરિણામ આઈડી ગેટસ્ક્રraપ પદ્ધતિથી મળી શકે છે.
  • SetLocalProxy($proxyUrl) - બધી વિનંતીઓ માટે વાપરવા માટે સ્થાનિક પ્રોક્સી સર્વરને સેટ કરે છે.