Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Basic Crawling

Sponsored · Your Podcast. Everywhere. Effortlessly. Share. Educate. Inspire. Entertain. You do you. We'll handle the rest. →
Avatar for ytbryan ytbryan
September 11, 2013

Basic Crawling

Geekcamp 2013

Avatar for ytbryan

ytbryan

September 11, 2013

Other Decks in Programming

Transcript

  1. I am running Digital Asia and we made these Briefcase

    Shoppink To myself Control your shop Browse shops easily Email yourself easily Wednesday, September 11, 13
  2. Disclaimer How I crawl the web, NOT how you should

    be crawling the web. Wednesday, September 11, 13
  3. You should not be doing anything illegal, violate copyright or

    privacy or cause any damages. Wednesday, September 11, 13
  4. Basic Crawler HTML parser + Net/http Put in background HTML

    Parser + Net/http placed in 1 server. Put a scheduler like cron or any of your favorite scheduler. Distributed Crawling HTML Parser + Net/http x multiple servers Wednesday, September 11, 13
  5. Basic Crawler HTML parser + Net/http Put in background (I’m

    doing this) HTML Parser + Net/http placed in 1 server. Put a scheduler like cron or any of your favorite scheduler. Distributed Crawling HTML Parser + Net/http x multiple servers Wednesday, September 11, 13
  6. Basic Crawler HTML parser + Net/http Put in background (I’m

    doing this) HTML Parser + Net/http placed in 1 server. Put a scheduler like cron or any of your favorite scheduler. Distributed Crawling HTML Parser + Net/http x multiple servers Your need for structure data increase Wednesday, September 11, 13
  7. How to Improve • Save to database. • Check database

    copy (cheaper) before Crawling (expensive) • Crawl in background to keep database fresh. • Distributed Crawling anyone? Wednesday, September 11, 13
  8. •30 minutes, not 30 days. •One developer •One server •Go

    for solution that works. Wednesday, September 11, 13
  9. Get all images? • Document.images • Good for Images reuse

    • Good for aggregation of data or image data • Or use Nokogiri.doc.css(‘img’) Wednesday, September 11, 13
  10. • Pass in the javascript command to //Convert  javascript  into

     string NSString  *filePath  =  [[NSBundle  mainBundle]   pathForResource:@"javascript"  ofType:@"js"   inDirectory:@"www"]; NSData  *fileData  =  [NSData  dataWithContentsOfFile:filePath];                                                     NSString  *jsString  =  [[NSMutableString  alloc]   initWithData:fileData  encoding:NSUTF8StringEncoding];   //execute  your  javascript  on  webView result  =  [webView   stringByEvaluatingJavaScriptFromString:javascriptString];   • get back data in “result” Javascript on Webview Wednesday, September 11, 13
  11. Let the user overcome captcha • Display captcha page. •

    Upon loading of next page, start crawling. If crawling fails, announce it. • How to tell if captcha is wrong. Wednesday, September 11, 13
  12. A few hours to make. Service is running for over

    2000 hours Wednesday, September 11, 13