{"id":415,"date":"2012-08-14T12:46:42","date_gmt":"2012-08-14T12:46:42","guid":{"rendered":"http:\/\/garysieling.com\/blog\/?p=415"},"modified":"2020-03-30T02:44:47","modified_gmt":"2020-03-30T02:44:47","slug":"scraping-a-list-of-adsense-sites-within-a-niche","status":"publish","type":"post","link":"https:\/\/www.garysieling.com\/blog\/scraping-a-list-of-adsense-sites-within-a-niche\/","title":{"rendered":"Scraping a List of Adsense Sites Within a Niche"},"content":{"rendered":"<p>One of the challenges in web crawling and scraping is determining which URLs to scrape. It\u2019s easy for a site to have many urls that aren\u2019t visited by humans, like a <a href=\"http:\/\/www.stickstock.com\">stock photo site<\/a> that uses an API to supplement its data. Sites with sessionid parameters or dynamic content may make many duplicate or similar pages.<\/p>\n<p>In a previous post I described a <a href=\"http:\/\/garysieling.com\/blog\/scraping-adsense-ads-with-phantomjs\">phantomjs adsense scraper<\/a>, which demonstrates an instance where the tool is very helpful. One might scrape ads to find out who is running campaigns to find out what is selling, how products are pitched, and who you might sell advertising to, if you are a publisher.  There are products to do this, like <a href=\"http:\/\/mixrank.com\/\">MixRank<\/a>.<\/p>\n<p>There are a couple ways you can do this on your own. There is a not-for-profit called Common Crawl, which has a 70 TB index on AWS, which lets you run Hadoop map-reduce queries. It has the entire text of many pages, which would allow searching the original source of the page. I started down this road &#8211; this would work as a generalized solution if I were building a product, but I found an easier way.<\/p>\n<p>There are a surprising number of search engine APIs &#8211; e.g. Yahoo, DuckDuckGo, Blekko, and Yandex. Blekko is very SEO focused and exposes a lot of useful fields, such as whether a site is an adsense publisher. Much of this understandably requires either an API key or login, but you can easily add parameters to turn the output into JSON and increase the paging size, like so:<\/p>\n<pre>http:\/\/blekko.com\/ws\/?q=guitar+tabs+\/adsense=+\/ps=100&amp;json=1&amp;\n<\/pre>\n<p>This gives you nicely formatted entries, like so:<\/p>\n<pre>  {\n         \"c\" : 1,\n         \"display_url\" : \"ultimate-guitar.com\",\n         \"n_group\" : 1,\n         \"rss\" : \"http:\/\/www.ultimate-guitar.com\/modules\/rss\/all_updates.xml.php\",\n         \"rss_title\" : \"Ultimate-Guitar.Com Updates\",\n         \"short_host\" : \"ultimate-guitar.com\",\n         \"short_host_url\" : \"http:\/\/www.ultimate-guitar.com\/\",\n         \"snippet\" : \"Search archives or submit <strong>tab<\/strong>.  Your #1 source for <strong><strong>guitar<\/strong> <strong>tabs<\/strong><\/strong>, bass <strong>tabs<\/strong>, chords and <strong><strong>guitar<\/strong> pro <strong>tabs<\/strong><\/strong>.  <strong>Guitar<\/strong> and bass <strong>tabs<\/strong> archive with daily updates.  In order to use the widgets you need to.  You can add up to three widgets to the home page's widget panel.\",\n         \"toplevel\" : \"1\",\n         \"url\" : \"http:\/\/www.ultimate-guitar.com\/\",\n         \"url_title\" : \"ULTIMATE <strong><strong>GUITAR<\/strong> <strong>TABS<\/strong><\/strong> ARCHIVE - 300,000+ <strong><strong>Guitar<\/strong> <strong>Tabs<\/strong><\/strong>, Bass <strong>Tabs<\/strong>, Chords and <strong><strong>Guitar<\/strong> Pro <strong>Tabs<\/strong><\/strong>\"\n      },\n      {\n         \"c\" : 2,\n         \"display_url\" : \"chordie.com\",\n         \"main_slashtag_boosted\" : \"\/blekko\/tabs\",\n         \"n_group\" : 2,\n         \"rss\" : \"http:\/\/www.chordie.com\/rss\/mostpopular.rss\",\n         \"rss_title\" : \"Most popular guitar songs\",\n         \"short_host\" : \"chordie.com\",\n         \"short_host_url\" : \"http:\/\/www.chordie.com\/\",\n         \"snippet\" : \"<strong><strong>Guitar<\/strong> chords<\/strong> and <strong>guitar<\/strong> tablature made easy.  Chordie is a search engine for finding <strong><strong>guitar<\/strong> chords<\/strong> and <strong><strong>guitar<\/strong> <strong>tabs<\/strong><\/strong>.  Search the Internet for <strong><strong>guitar<\/strong> chords<\/strong> and <strong>tabs<\/strong>\/tablatures.  <strong><strong>Guitar<\/strong> chords<\/strong> and <strong><strong>guitar<\/strong> <strong>tabs<\/strong><\/strong>.  This morning a lot of people were getting a message about being banned for life.\",\n         \"toplevel\" : \"1\",\n         \"url\" : \"http:\/\/www.chordie.com\/\",\n         \"url_title\" : \"<strong><strong>Guitar<\/strong> <strong>Tabs<\/strong><\/strong>, <strong><strong>Guitar<\/strong> Chords<\/strong> and Lyrics - Chordie\"\n      },\n      {\n         \"c\" : 3,\n         \"display_url\" : \"guitartabs.net\",\n         \"n_group\" : 3,\n         \"short_host\" : \"guitartabs.net\",\n         \"short_host_url\" : \"http:\/\/www.guitartabs.net\/\",\n         \"snippet\" : \"ActiveBass.com Premier site with theory + bass <strong>tab<\/strong> search.  GuitarWar.com Ultimate <strong>guitar<\/strong> <strong>tab<\/strong> competition.  <strong>Tab<\/strong> Robot Unique <strong><strong>guitar<\/strong> <strong>tabs<\/strong><\/strong> engine.  GuitarTricks <strong>Guitar<\/strong> <strong>tab<\/strong>,chords,and video lessons.  Olga Search- search the OLGA <strong>tab<\/strong> archive by putting in the artist or song name in the search field at the top of the page.\",\n         \"toplevel\" : \"1\",\n         \"url\" : \"http:\/\/www.guitartabs.net\/\",\n         \"url_title\" : \"<strong><strong>Guitar<\/strong> <strong>Tabs<\/strong><\/strong> Dot Net - Your #1 source for <strong><strong>guitar<\/strong> <strong>tabs<\/strong><\/strong>\"\n      },\n<\/pre>\n<p>This saves hours over using Elastic Map-Reduce, much like purchasing a product would likely save me hours over doing it this way \ud83d\ude09<\/p>\n","protected":false},"excerpt":{"rendered":"<p>One of the challenges in web crawling and scraping is determining which URLs to scrape. It\u2019s easy for a site to have many urls that aren\u2019t visited by humans, like a stock photo site that uses an API to supplement its data. Sites with sessionid parameters or dynamic content may make many duplicate or similar &hellip; <\/p>\n<p class=\"link-more\"><a href=\"https:\/\/www.garysieling.com\/blog\/scraping-a-list-of-adsense-sites-within-a-niche\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;Scraping a List of Adsense Sites Within a Niche&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"om_disable_all_campaigns":false,"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"footnotes":""},"categories":[5,6],"tags":[39,71,89,127,147,187,267,476,495],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 4.9.9 - aioseo.com -->\n\t<meta name=\"description\" content=\"One of the challenges in web crawling and scraping is determining which URLs to scrape. It\u2019s easy for a site to have many urls that aren\u2019t visited by humans, like a stock photo site that uses an API to supplement its data. Sites with sessionid parameters or dynamic content may make many duplicate or similar\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"gary\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/www.garysieling.com\/blog\/scraping-a-list-of-adsense-sites-within-a-niche\/\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 4.9.9\" \/>\n\t\t<meta property=\"og:locale\" content=\"en_US\" \/>\n\t\t<meta property=\"og:site_name\" content=\"Gary Sieling - Software Engineer\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"Scraping a List of Adsense Sites Within a Niche - Gary Sieling\" \/>\n\t\t<meta property=\"og:description\" content=\"One of the challenges in web crawling and scraping is determining which URLs to scrape. It\u2019s easy for a site to have many urls that aren\u2019t visited by humans, like a stock photo site that uses an API to supplement its data. Sites with sessionid parameters or dynamic content may make many duplicate or similar\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/www.garysieling.com\/blog\/scraping-a-list-of-adsense-sites-within-a-niche\/\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2012-08-14T12:46:42+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-03-30T02:44:47+00:00\" \/>\n\t\t<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n\t\t<meta name=\"twitter:title\" content=\"Scraping a List of Adsense Sites Within a Niche - Gary Sieling\" \/>\n\t\t<meta name=\"twitter:description\" content=\"One of the challenges in web crawling and scraping is determining which URLs to scrape. It\u2019s easy for a site to have many urls that aren\u2019t visited by humans, like a stock photo site that uses an API to supplement its data. Sites with sessionid parameters or dynamic content may make many duplicate or similar\" \/>\n\t\t<script type=\"application\/ld+json\" class=\"aioseo-schema\">\n\t\t\t{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"BlogPosting\",\"@id\":\"https:\\\/\\\/www.garysieling.com\\\/blog\\\/scraping-a-list-of-adsense-sites-within-a-niche\\\/#blogposting\",\"name\":\"Scraping a List of Adsense Sites Within a Niche - Gary Sieling\",\"headline\":\"Scraping a List of Adsense Sites Within a Niche\",\"author\":{\"@id\":\"https:\\\/\\\/www.garysieling.com\\\/blog\\\/author\\\/gary\\\/#author\"},\"publisher\":{\"@id\":\"https:\\\/\\\/www.garysieling.com\\\/blog\\\/#organization\"},\"datePublished\":\"2012-08-14T12:46:42+00:00\",\"dateModified\":\"2020-03-30T02:44:47+00:00\",\"inLanguage\":\"en-US\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.garysieling.com\\\/blog\\\/scraping-a-list-of-adsense-sites-within-a-niche\\\/#webpage\"},\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.garysieling.com\\\/blog\\\/scraping-a-list-of-adsense-sites-within-a-niche\\\/#webpage\"},\"articleSection\":\"Data Mining, Data Science, adsense, aws, blekko, crawling, data mining, emr, hadoop, s3, scraping\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.garysieling.com\\\/blog\\\/scraping-a-list-of-adsense-sites-within-a-niche\\\/#breadcrumblist\",\"itemListElement\":[{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.garysieling.com\\\/blog#listItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.garysieling.com\\\/blog\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.garysieling.com\\\/blog\\\/category\\\/data-mining\\\/#listItem\",\"name\":\"Data Mining\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.garysieling.com\\\/blog\\\/category\\\/data-mining\\\/#listItem\",\"position\":2,\"name\":\"Data Mining\",\"item\":\"https:\\\/\\\/www.garysieling.com\\\/blog\\\/category\\\/data-mining\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.garysieling.com\\\/blog\\\/scraping-a-list-of-adsense-sites-within-a-niche\\\/#listItem\",\"name\":\"Scraping a List of Adsense Sites Within a Niche\"},\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.garysieling.com\\\/blog#listItem\",\"name\":\"Home\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.garysieling.com\\\/blog\\\/scraping-a-list-of-adsense-sites-within-a-niche\\\/#listItem\",\"position\":3,\"name\":\"Scraping a List of Adsense Sites Within a Niche\",\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.garysieling.com\\\/blog\\\/category\\\/data-mining\\\/#listItem\",\"name\":\"Data Mining\"}}]},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.garysieling.com\\\/blog\\\/#organization\",\"name\":\"Gary Sieling\",\"description\":\"Software Engineer\",\"url\":\"https:\\\/\\\/www.garysieling.com\\\/blog\\\/\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.garysieling.com\\\/blog\\\/author\\\/gary\\\/#author\",\"url\":\"https:\\\/\\\/www.garysieling.com\\\/blog\\\/author\\\/gary\\\/\",\"name\":\"gary\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\\\/\\\/www.garysieling.com\\\/blog\\\/scraping-a-list-of-adsense-sites-within-a-niche\\\/#authorImage\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/0be925276d848ffe98a6a9dc8cf33e67?s=96&d=identicon&r=g\",\"width\":96,\"height\":96,\"caption\":\"gary\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.garysieling.com\\\/blog\\\/scraping-a-list-of-adsense-sites-within-a-niche\\\/#webpage\",\"url\":\"https:\\\/\\\/www.garysieling.com\\\/blog\\\/scraping-a-list-of-adsense-sites-within-a-niche\\\/\",\"name\":\"Scraping a List of Adsense Sites Within a Niche - Gary Sieling\",\"description\":\"One of the challenges in web crawling and scraping is determining which URLs to scrape. It\\u2019s easy for a site to have many urls that aren\\u2019t visited by humans, like a stock photo site that uses an API to supplement its data. Sites with sessionid parameters or dynamic content may make many duplicate or similar\",\"inLanguage\":\"en-US\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.garysieling.com\\\/blog\\\/#website\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.garysieling.com\\\/blog\\\/scraping-a-list-of-adsense-sites-within-a-niche\\\/#breadcrumblist\"},\"author\":{\"@id\":\"https:\\\/\\\/www.garysieling.com\\\/blog\\\/author\\\/gary\\\/#author\"},\"creator\":{\"@id\":\"https:\\\/\\\/www.garysieling.com\\\/blog\\\/author\\\/gary\\\/#author\"},\"datePublished\":\"2012-08-14T12:46:42+00:00\",\"dateModified\":\"2020-03-30T02:44:47+00:00\"},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.garysieling.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.garysieling.com\\\/blog\\\/\",\"name\":\"Gary Sieling\",\"description\":\"Software Engineer\",\"inLanguage\":\"en-US\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.garysieling.com\\\/blog\\\/#organization\"}}]}\n\t\t<\/script>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"Scraping a List of Adsense Sites Within a Niche - Gary Sieling","description":"One of the challenges in web crawling and scraping is determining which URLs to scrape. It\u2019s easy for a site to have many urls that aren\u2019t visited by humans, like a stock photo site that uses an API to supplement its data. Sites with sessionid parameters or dynamic content may make many duplicate or similar","canonical_url":"https:\/\/www.garysieling.com\/blog\/scraping-a-list-of-adsense-sites-within-a-niche\/","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"BlogPosting","@id":"https:\/\/www.garysieling.com\/blog\/scraping-a-list-of-adsense-sites-within-a-niche\/#blogposting","name":"Scraping a List of Adsense Sites Within a Niche - Gary Sieling","headline":"Scraping a List of Adsense Sites Within a Niche","author":{"@id":"https:\/\/www.garysieling.com\/blog\/author\/gary\/#author"},"publisher":{"@id":"https:\/\/www.garysieling.com\/blog\/#organization"},"datePublished":"2012-08-14T12:46:42+00:00","dateModified":"2020-03-30T02:44:47+00:00","inLanguage":"en-US","mainEntityOfPage":{"@id":"https:\/\/www.garysieling.com\/blog\/scraping-a-list-of-adsense-sites-within-a-niche\/#webpage"},"isPartOf":{"@id":"https:\/\/www.garysieling.com\/blog\/scraping-a-list-of-adsense-sites-within-a-niche\/#webpage"},"articleSection":"Data Mining, Data Science, adsense, aws, blekko, crawling, data mining, emr, hadoop, s3, scraping"},{"@type":"BreadcrumbList","@id":"https:\/\/www.garysieling.com\/blog\/scraping-a-list-of-adsense-sites-within-a-niche\/#breadcrumblist","itemListElement":[{"@type":"ListItem","@id":"https:\/\/www.garysieling.com\/blog#listItem","position":1,"name":"Home","item":"https:\/\/www.garysieling.com\/blog","nextItem":{"@type":"ListItem","@id":"https:\/\/www.garysieling.com\/blog\/category\/data-mining\/#listItem","name":"Data Mining"}},{"@type":"ListItem","@id":"https:\/\/www.garysieling.com\/blog\/category\/data-mining\/#listItem","position":2,"name":"Data Mining","item":"https:\/\/www.garysieling.com\/blog\/category\/data-mining\/","nextItem":{"@type":"ListItem","@id":"https:\/\/www.garysieling.com\/blog\/scraping-a-list-of-adsense-sites-within-a-niche\/#listItem","name":"Scraping a List of Adsense Sites Within a Niche"},"previousItem":{"@type":"ListItem","@id":"https:\/\/www.garysieling.com\/blog#listItem","name":"Home"}},{"@type":"ListItem","@id":"https:\/\/www.garysieling.com\/blog\/scraping-a-list-of-adsense-sites-within-a-niche\/#listItem","position":3,"name":"Scraping a List of Adsense Sites Within a Niche","previousItem":{"@type":"ListItem","@id":"https:\/\/www.garysieling.com\/blog\/category\/data-mining\/#listItem","name":"Data Mining"}}]},{"@type":"Organization","@id":"https:\/\/www.garysieling.com\/blog\/#organization","name":"Gary Sieling","description":"Software Engineer","url":"https:\/\/www.garysieling.com\/blog\/"},{"@type":"Person","@id":"https:\/\/www.garysieling.com\/blog\/author\/gary\/#author","url":"https:\/\/www.garysieling.com\/blog\/author\/gary\/","name":"gary","image":{"@type":"ImageObject","@id":"https:\/\/www.garysieling.com\/blog\/scraping-a-list-of-adsense-sites-within-a-niche\/#authorImage","url":"https:\/\/secure.gravatar.com\/avatar\/0be925276d848ffe98a6a9dc8cf33e67?s=96&d=identicon&r=g","width":96,"height":96,"caption":"gary"}},{"@type":"WebPage","@id":"https:\/\/www.garysieling.com\/blog\/scraping-a-list-of-adsense-sites-within-a-niche\/#webpage","url":"https:\/\/www.garysieling.com\/blog\/scraping-a-list-of-adsense-sites-within-a-niche\/","name":"Scraping a List of Adsense Sites Within a Niche - Gary Sieling","description":"One of the challenges in web crawling and scraping is determining which URLs to scrape. It\u2019s easy for a site to have many urls that aren\u2019t visited by humans, like a stock photo site that uses an API to supplement its data. Sites with sessionid parameters or dynamic content may make many duplicate or similar","inLanguage":"en-US","isPartOf":{"@id":"https:\/\/www.garysieling.com\/blog\/#website"},"breadcrumb":{"@id":"https:\/\/www.garysieling.com\/blog\/scraping-a-list-of-adsense-sites-within-a-niche\/#breadcrumblist"},"author":{"@id":"https:\/\/www.garysieling.com\/blog\/author\/gary\/#author"},"creator":{"@id":"https:\/\/www.garysieling.com\/blog\/author\/gary\/#author"},"datePublished":"2012-08-14T12:46:42+00:00","dateModified":"2020-03-30T02:44:47+00:00"},{"@type":"WebSite","@id":"https:\/\/www.garysieling.com\/blog\/#website","url":"https:\/\/www.garysieling.com\/blog\/","name":"Gary Sieling","description":"Software Engineer","inLanguage":"en-US","publisher":{"@id":"https:\/\/www.garysieling.com\/blog\/#organization"}}]},"og:locale":"en_US","og:site_name":"Gary Sieling - Software Engineer","og:type":"article","og:title":"Scraping a List of Adsense Sites Within a Niche - Gary Sieling","og:description":"One of the challenges in web crawling and scraping is determining which URLs to scrape. It\u2019s easy for a site to have many urls that aren\u2019t visited by humans, like a stock photo site that uses an API to supplement its data. Sites with sessionid parameters or dynamic content may make many duplicate or similar","og:url":"https:\/\/www.garysieling.com\/blog\/scraping-a-list-of-adsense-sites-within-a-niche\/","article:published_time":"2012-08-14T12:46:42+00:00","article:modified_time":"2020-03-30T02:44:47+00:00","twitter:card":"summary_large_image","twitter:title":"Scraping a List of Adsense Sites Within a Niche - Gary Sieling","twitter:description":"One of the challenges in web crawling and scraping is determining which URLs to scrape. It\u2019s easy for a site to have many urls that aren\u2019t visited by humans, like a stock photo site that uses an API to supplement its data. Sites with sessionid parameters or dynamic content may make many duplicate or similar"},"aioseo_meta_data":{"post_id":"415","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":"default","schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"limit_modified_date":false,"created":"2023-02-04 16:05:58","updated":"2026-07-06 00:43:42","ai":null,"breadcrumb_settings":null,"seo_analyzer_scan_date":null},"aioseo_breadcrumb":"<div class=\"aioseo-breadcrumbs\"><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/www.garysieling.com\/blog\" title=\"Home\">Home<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/www.garysieling.com\/blog\/category\/data-mining\/\" title=\"Data Mining\">Data Mining<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\tScraping a List of Adsense Sites Within a Niche\n\t\t<\/span><\/div>","aioseo_breadcrumb_json":[{"label":"Home","link":"https:\/\/www.garysieling.com\/blog"},{"label":"Data Mining","link":"https:\/\/www.garysieling.com\/blog\/category\/data-mining\/"},{"label":"Scraping a List of Adsense Sites Within a Niche","link":"https:\/\/www.garysieling.com\/blog\/scraping-a-list-of-adsense-sites-within-a-niche\/"}],"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/www.garysieling.com\/blog\/wp-json\/wp\/v2\/posts\/415"}],"collection":[{"href":"https:\/\/www.garysieling.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.garysieling.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.garysieling.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.garysieling.com\/blog\/wp-json\/wp\/v2\/comments?post=415"}],"version-history":[{"count":1,"href":"https:\/\/www.garysieling.com\/blog\/wp-json\/wp\/v2\/posts\/415\/revisions"}],"predecessor-version":[{"id":6480,"href":"https:\/\/www.garysieling.com\/blog\/wp-json\/wp\/v2\/posts\/415\/revisions\/6480"}],"wp:attachment":[{"href":"https:\/\/www.garysieling.com\/blog\/wp-json\/wp\/v2\/media?parent=415"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.garysieling.com\/blog\/wp-json\/wp\/v2\/categories?post=415"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.garysieling.com\/blog\/wp-json\/wp\/v2\/tags?post=415"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}