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

ASP.NET માટે વેબ સ્ક્રેપર API ASP.NET સ્ક્રેપર API

સૌ પ્રથમ ડાઉનલોડ કરો ASP.NET માટે વેબ સ્ક્રેપર API અને પ્રારંભ કરવા માટે નમૂના વેબ પ્રોજેક્ટમાં સ્થિત હેન્ડલઅરએક્સએક્સનું નિરીક્ષણ કરો.

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

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

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

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

જો કે ASP.NET API સાથે, JSON અથવા XML ફાઇલોને વાંચવા માટે એક વધારાનું પગલું આવશ્યક છે, જેમાં વર્ગો બનાવવામાં આવે છે જે અપેક્ષિત ડેટા સ્ટ્રક્ચર સાથે મેળ ખાય છે. આનું ઉદાહરણ નીચે બતાવેલ છે કે ઉપરોક્ત JSON ડેટા સ્ટ્રક્ચરને પકડી રાખવા માટે બે વર્ગ વ્યાખ્યાઓ બનાવવામાં આવી છે.

public class DataSet
{
    public List<Item> Items;
}

public class Item
{
    public string Column_One;
    public string Column_Two;
}

આ વર્ગો હવે JSON ફાઇલમાં કન્વર્ટ કરવા માટે વપરાય છે intOA ઉપયોગી .બ્જેક્ટ સ્ટ્રક્ચર. નીચેના સ્ક્રpeપ રિઝલ્ટ કન્સ્ટ્રક્ટર નીચેના ઉદાહરણમાં એચટીટીપીઆરક્વેસ્ટ વર્ગ પ્રાપ્ત કરી રહ્યો છે, જો કે તે એએસપી.એનટીટી એમવીસી વેબ પ્રોજેક્ટ્સ સાથે સુસંગત બનાવવા માટે એચટીટીપીરેક્વેસ્ટબેસ વર્ગને પણ સ્વીકારે છે.

ScrapeResult scrapeResult = new ScrapeResult(context.Request);

if (scrapeResult.Extension == "json")
{
    DataSet dataSet = scrapeResult.FromJSON<DataSet>();
    foreach (Item item in dataSet.Items)
    {
        if (item.Column_Two == "Found")
        {
            //do something
        }
        else
        {
            //do something else
        }
    }
}
else
{
    //probably a binary file etc save it
    scrapeResult.save(context.Server.MapPath("~/results/" + scrapeResult.Filename));
}

ઉપરોક્ત ઉદાહરણ બતાવે છે કે ડેટાસેટ વર્ગના તમામ પરિણામો કેવી રીતે લૂપ કરવા અને ની કિંમત પર આધાર રાખીને વિશિષ્ટ ક્રિયાઓ કેવી રીતે કરવી Column_Two મિલકત. પણ જો હેન્ડલરે પ્રાપ્ત કરેલી ફાઇલ જેએસઓન ફાઇલ ન હોય તો તે માત્ર યોગ્ય છે saveડી ડિરેક્ટરીમાં ડી. જ્યારે સ્ક્રpeપ રિઝલ્ટ ક્લાસ ખાતરી કરે છે કે બધી પોસ્ટ કરેલી ફાઇલો ગ્રાબઝિટના સર્વર્સમાંથી ઉદ્ભવે છે તે ફાઇલોના એક્સ્ટેંશનની તપાસ કરતા પહેલા તપાસ કરવી જોઈએ. saved.

સ્ક્રેપરેઝલ્ટ પદ્ધતિઓ અને ગુણધર્મો

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

  • string Extension - સ્ક્રેપના પરિણામે કોઈપણ ફાઇલના વિસ્તરણને મેળવે છે.
  • string Filename - સ્ક્રેપના પરિણામે કોઈપણ ફાઇલનું ફાઇલનામ મેળવે છે.
  • T FromJSON<T>() - સ્ક્રેપથી પરિણમેલી કોઈપણ JSON ફાઇલને નિર્દિષ્ટ પ્રકારમાં ફેરવે છે.
  • string ToString() - સ્ક્રેપથી પરિણમેલી કોઈપણ ફાઇલને a માં ફેરવે છે string.
  • T FromXML<T>() - સ્ક્રેપથી પરિણમેલી કોઈપણ XML ફાઇલને નિર્દિષ્ટ પ્રકારમાં ફેરવે છે.
  • boolean Save(string path) - saveઓ સ્ક્રેપથી પરિણમેલી કોઈપણ ફાઇલ, જો તે સફળ થાય તો સાચું પાછું આપે છે.

ડિબગીંગ

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

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

#the rest of your handler code remains the same

ભંગારને કાબૂમાં રાખવું

GrabzIt ના વેબ સ્ક્રેપર API સાથે, તમે સ્ક્રેપની તે સ્થિતિને બદલીને, શરૂ કરીને, અટકાવી શકો છો અથવા આવશ્યકતા મુજબ સ્ક્રેપને અક્ષમ કરી શકો છો. આ નીચેના ઉદાહરણમાં સ્ક્રેપની ID ને દ્વારા પ્રદાન કરેલી ઇચ્છિત સ્ક્રેપ સ્થિતિ સાથે પસાર કરીને બતાવવામાં આવે છે ScrapeStatus માટે enum SetScrapeStatus પદ્ધતિ

GrabzItScrapeClient client = new GrabzItScrapeClient("Sign in to view your Application Key", "Sign in to view your Application Secret");
//Get all of our scrapes
GrabzItScrape[] myScrapes = client.GetScrapes();
if (myScrapes.Length == 0)
{
    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, ScrapeStatus.Start);
if (myScrapes[0].Results.Length > 0)
{
    //re-send first scrape result if it exists
    client.SendResult(myScrapes[0].ID, myScrapes[0].Results[0].ID);
}

GrabzItScrapeClient પદ્ધતિઓ અને ગુણધર્મો

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

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