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

ממשק API של מגרד אינטרנט לפיתון ממשק API לפיתון מגרד

קודם כל להורדה ממשק ה- API של מגרד הרשת עבור Python והצג את המטפל לדוגמה שנמצא בפנים כדי להתחיל.

עיבוד נתונים מגרדים

הדרך הקלה ביותר לעבד נתונים מגרדים היא לגשת לנתונים כאובייקט JSON או XML, מכיוון שהדבר מאפשר לתפעל ולשאול בקלות את הנתונים. ה- JSON יבנה בפורמט הכללי הבא עם שם הנתונים כמאפיין האובייקט, עצמו מכיל מערך של אובייקטים עם כל שם העמודה כתכונה אחרת.

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

ראשית כל צריך לזכור כי המטפל ישלח את כל הנתונים הגרוטים, אשר עשויים לכלול נתונים שלא ניתן להמיר לאובייקטים JSON או XML. לכן יש לבדוק את סוג הנתונים שאתה מקבל לפני שעובדים אותם.

scrapeResult = ScrapeResult.ScrapeResult()

if scrapeResult.getExtension() == 'json':
    json = scrapeResult.toJSON()
    for json["Dataset_Name"] in 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.
  • xml.etree.ElementTree toXML() - ממיר כל קובץ XML הנובע מהגרד לאלמנט XML.
  • boolean save(path) - saves כל קובץ הנובע מהשריטה, חוזר ונכון אם הוא מצליח.

Debugging

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

scrapeResult = ScrapeResult.ScrapeResult("data.json");

#the rest of your handler code remains the same

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

עם ה- API של GrabzIt Web Scraper עבור Python אתה יכול להפעיל, להפסיק, להפעיל או להשבית מרחוק מרחוק לפי הצורך. זה מוצג בדוגמה להלן שהיו מזהות הגרד יחד עם סטטוס הגרד החדש מועבר ל SetScrapeStatus שִׁיטָה.

client = GrabzItScrapeClient.GrabzItScrapeClient("Sign in to view your Application Key", "Sign in to view your Application Secret")
//Get all of our scrapes
myScrapes = client.GetScrapes()
if (len(myScrapes) == 0)
{
    raise Exception('You have not created any scrapes yet! Create one here: https://grabz.it/scraper/scrape.aspx')
}
//Start the first scrape
client.SetScrapeStatus(myScrapes[0].ID, "Start")
if (len(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 המקומי לשימוש בכל הבקשות.