{"id":843,"date":"2010-08-02T19:04:55","date_gmt":"2010-08-02T13:19:55","guid":{"rendered":"https:\/\/www.sparksupport.com\/blog\/?p=843"},"modified":"2024-06-26T11:57:57","modified_gmt":"2024-06-26T11:57:57","slug":"web-scraping-a-basic-know-how","status":"publish","type":"post","link":"https:\/\/sparksupport.com\/blog\/web-scraping-a-basic-know-how\/","title":{"rendered":"Web Scraping : A basic know-how."},"content":{"rendered":"<div>\n<p>A Web crawler is a computer program that browses the World Wide Web in a methodical, automated manner or in an orderly fashion. Other terms for Web crawlers are ants, automatic indexers, bots, web spiders, web robots, etc. The process is termed &#8220;web crawling&#8221;, and most site engines use it as a means to provide up-to-date data, in order to create a copy of all pages that have been visited. These are later processed, and the search engine will index the downloaded pages.<br \/>\nThis helps in :<\/p>\n<ul>\n<li>faster search<\/li>\n<li>automating maintenance task on a web site<\/li>\n<li>gathering specific types of information from websites<\/li>\n<\/ul>\n<p>The bot starts with seeds, which are a list of URLs to visit. Once the &#8220;crawler&#8221; is on one of the listed URLs, the hyperlinks in that page are identified and added to the &#8220;crawl frontier&#8221; which is the set of URLs that are to be visited. These are later visited according to a pre-defined set of policies.<\/p>\n<p>Web Crawlers can be developed using any language : perl, python, java, asp,php etc. Among these, we chose perl to develop a web crawler. Lets see what happened next.<\/p>\n<p><em><span style=\"color: #003300;\">Why Perl?<\/span><\/em><\/p>\n<p>Perl is well suited for \u00a0web scraping \u00a0because of its highly powerful RegEx and availability of CPAN modules .<\/p>\n<p>In this session, we will deal with :<\/p>\n<ul>\n<li>Mechanize(Perl Module),<\/li>\n<li>Process spawning<\/li>\n<li>Anonymous \u00a0scraping<\/li>\n<\/ul>\n<p>Mechanize module : Mechanize is one of the main modules used, for stateful programmatic web browsing, used for automating interaction with websites. Mechanize supports performing a sequence of page fetches including following links and submitting forms. Each fetched page is parsed and its links and forms are extracted. A link or a form can be selected, form fields can be filled and the next page can be fetched. Mech also stores a history of the URLs you\u2019ve visited, which can be queried and revisited. Usefull functions decribed in bottem<\/p>\n<p>For more info:<a href=\"http:\/\/search.cpan.org\/~petdance\/WWW-Mechanize-1.62\/\">http:\/\/search.cpan.org\/~petdance\/WWW-Mechanize-1.62\/<\/a><\/p>\n<p>Sample Script for Web Scraping<\/p>\n<p>[perl]<br \/>\n#!\/usr\/bin\/perl -w<br \/>\nuse WWW::Mechanize;<br \/>\n$url = &#8216;http:\/\/chato.cl\/research\/crawling_thesis &#8216;;<br \/>\n$m = WWW::Mechanize-&amp;gt;new();<br \/>\n$m-&amp;gt;get($url);<br \/>\n$c = $m-&amp;gt;content; # \u00a0Will display souce code of the above link<br \/>\nexit;<br \/>\n[\/perl]<\/p>\n<blockquote><p><em><span style=\"color: #003300;\">Usefull Function of mechanize module<\/span><\/em><br \/>\nmy $mech = WWW::Mechanize-&gt;new(); \u00a0 \u00a0 \u00a0 \u00a0 #Creating new object of \u00a0Mechanize.<br \/>\n$mech-&gt;agent_alias(&#8216;Linux Mozilla&#8217;); \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 #Creating a new agent like firfox<br \/>\n$mech-&gt;get(&#8216;www.google.com&#8217;); \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 #Download content in the link (www.google.com)<br \/>\n$mech-&gt;content; \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 # This has the content of www.google.com link<br \/>\n$mech-&gt;submit_form \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0# for form submition<br \/>\n$mech-&gt;find_link(text =&gt;&#8217;Next&#8217;) \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0#Follow the link with text &#8216;Next&#8217; there are so many options for this like regular expression ,class,etc<\/p><\/blockquote>\n<p><strong><span style=\"color: #003300;\">Process spawning \u00a0:<\/span><\/strong><br \/>\nMost of the bots have a main process and a number of child processes. Main processes deal with creating child processes based on our requirement, while the child processes scrape our target locations simultanously.<\/p>\n<p><span style=\"color: #003300;\"><strong>Why Process spawning?<\/strong><\/span><br \/>\nProcess spawning is used simply for simultaneous scraping at different levels of a web site (i.e. at different page\/sections etc.<br \/>\nIt has a number of advantages like nitro boosting of scraping speed and easier management of server load.<br \/>\nIn case the target is an e-commerce portal with a million section (like review page) with some pages or sections (or any other target) \u00a0missing. Here, the child process will simply die, without effecting the total crawling process, while the main continues with a new child and new section.<br \/>\n<strong><span style=\"color: #003300;\"> Anonymous scraping with TOR<\/span><\/strong><\/p>\n<p>Tor is a free software and an open network that helps in defending your site against a form of network surveillance known as traffic analysis. This surviellance threatens personal freedom, privacy, confidential business activities and relationships.<br \/>\nTor is a network of virtual tunnels that allows people and groups to improve their privacy and security on the Internet. It also enables software developers to create new communication tools with built-in privacy features. Tor provides the foundation for a range of applications that allow organizations and individuals to share information over public networks without compromising their privacy.<\/p>\n<p>For more info \u00a0please go through<br \/>\n<a href=\"https:\/\/support.torproject.org\/#polipo\"> http:\/\/www.torproject.org\/docs\/tor-doc-unix.html.en#polipo<\/a><\/p>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>A Web crawler is a computer program that browses the World Wide Web in a methodical, automated manner or in an orderly fashion. Other terms<\/p>\n","protected":false},"author":9,"featured_media":5089,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[24,6,87],"tags":[142,143,144,145,146],"class_list":["post-843","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-articles","category-linux","category-perl","tag-bots","tag-perl","tag-scraping","tag-tor","tag-web-crawling"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.2 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Web Scraping : A basic know-how. - complete guide<\/title>\n<meta name=\"description\" content=\"Are you searching for web scraping? Let&#039;s explore the methods and specially built applications for extracting useful information from the websites.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/sparksupport.com\/blog\/web-scraping-a-basic-know-how\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Web Scraping : A basic know-how. - complete guide\" \/>\n<meta property=\"og:description\" content=\"Are you searching for web scraping? Let&#039;s explore the methods and specially built applications for extracting useful information from the websites.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/sparksupport.com\/blog\/web-scraping-a-basic-know-how\/\" \/>\n<meta property=\"article:published_time\" content=\"2010-08-02T13:19:55+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-06-26T11:57:57+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/sparksupport.com\/blog\/wp-content\/uploads\/2010\/08\/1.png\" \/>\n\t<meta property=\"og:image:width\" content=\"900\" \/>\n\t<meta property=\"og:image:height\" content=\"503\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Shameem Khalid\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Shameem Khalid\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/sparksupport.com\/blog\/web-scraping-a-basic-know-how\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/sparksupport.com\/blog\/web-scraping-a-basic-know-how\/\"},\"author\":{\"name\":\"Shameem Khalid\",\"@id\":\"https:\/\/sparksupport.com\/blog\/#\/schema\/person\/7e7199cb9f41aaf67868b7d4d4a4cf39\"},\"headline\":\"Web Scraping : A basic know-how.\",\"datePublished\":\"2010-08-02T13:19:55+00:00\",\"dateModified\":\"2024-06-26T11:57:57+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/sparksupport.com\/blog\/web-scraping-a-basic-know-how\/\"},\"wordCount\":700,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/sparksupport.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/sparksupport.com\/blog\/web-scraping-a-basic-know-how\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/sparksupport.com\/blog\/wp-content\/uploads\/2010\/08\/1.png\",\"keywords\":[\"bots\",\"perl\",\"scraping\",\"tor\",\"web crawling\"],\"articleSection\":[\"Articles\",\"linux\",\"perl\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/sparksupport.com\/blog\/web-scraping-a-basic-know-how\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/sparksupport.com\/blog\/web-scraping-a-basic-know-how\/\",\"url\":\"https:\/\/sparksupport.com\/blog\/web-scraping-a-basic-know-how\/\",\"name\":\"Web Scraping : A basic know-how. - complete guide\",\"isPartOf\":{\"@id\":\"https:\/\/sparksupport.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/sparksupport.com\/blog\/web-scraping-a-basic-know-how\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/sparksupport.com\/blog\/web-scraping-a-basic-know-how\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/sparksupport.com\/blog\/wp-content\/uploads\/2010\/08\/1.png\",\"datePublished\":\"2010-08-02T13:19:55+00:00\",\"dateModified\":\"2024-06-26T11:57:57+00:00\",\"description\":\"Are you searching for web scraping? Let's explore the methods and specially built applications for extracting useful information from the websites.\",\"breadcrumb\":{\"@id\":\"https:\/\/sparksupport.com\/blog\/web-scraping-a-basic-know-how\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/sparksupport.com\/blog\/web-scraping-a-basic-know-how\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/sparksupport.com\/blog\/web-scraping-a-basic-know-how\/#primaryimage\",\"url\":\"https:\/\/sparksupport.com\/blog\/wp-content\/uploads\/2010\/08\/1.png\",\"contentUrl\":\"https:\/\/sparksupport.com\/blog\/wp-content\/uploads\/2010\/08\/1.png\",\"width\":900,\"height\":503},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/sparksupport.com\/blog\/web-scraping-a-basic-know-how\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/sparksupport.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Web Scraping : A basic know-how.\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/sparksupport.com\/blog\/#website\",\"url\":\"https:\/\/sparksupport.com\/blog\/\",\"name\":\"SparkSupport Blog\",\"description\":\"SparkSupport Blogs\",\"publisher\":{\"@id\":\"https:\/\/sparksupport.com\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/sparksupport.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/sparksupport.com\/blog\/#organization\",\"name\":\"SparkSupport\",\"url\":\"https:\/\/sparksupport.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/sparksupport.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/sparksupport.com\/blog\/wp-content\/uploads\/2019\/08\/cropped-logo-1.jpg\",\"contentUrl\":\"https:\/\/sparksupport.com\/blog\/wp-content\/uploads\/2019\/08\/cropped-logo-1.jpg\",\"width\":216,\"height\":44,\"caption\":\"SparkSupport\"},\"image\":{\"@id\":\"https:\/\/sparksupport.com\/blog\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/sparksupport.com\/blog\/#\/schema\/person\/7e7199cb9f41aaf67868b7d4d4a4cf39\",\"name\":\"Shameem Khalid\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/secure.gravatar.com\/avatar\/11295ac6c7aadbe227c1b4ddff880dd32e1ca53f15d50d3f5f724ceda03929a0?s=96&d=mm&r=g\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/11295ac6c7aadbe227c1b4ddff880dd32e1ca53f15d50d3f5f724ceda03929a0?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/11295ac6c7aadbe227c1b4ddff880dd32e1ca53f15d50d3f5f724ceda03929a0?s=96&d=mm&r=g\",\"caption\":\"Shameem Khalid\"},\"url\":\"https:\/\/sparksupport.com\/blog\/author\/shameem\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Web Scraping : A basic know-how. - complete guide","description":"Are you searching for web scraping? Let's explore the methods and specially built applications for extracting useful information from the websites.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/sparksupport.com\/blog\/web-scraping-a-basic-know-how\/","og_locale":"en_US","og_type":"article","og_title":"Web Scraping : A basic know-how. - complete guide","og_description":"Are you searching for web scraping? Let's explore the methods and specially built applications for extracting useful information from the websites.","og_url":"https:\/\/sparksupport.com\/blog\/web-scraping-a-basic-know-how\/","article_published_time":"2010-08-02T13:19:55+00:00","article_modified_time":"2024-06-26T11:57:57+00:00","og_image":[{"width":900,"height":503,"url":"https:\/\/sparksupport.com\/blog\/wp-content\/uploads\/2010\/08\/1.png","type":"image\/png"}],"author":"Shameem Khalid","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Shameem Khalid","Est. reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/sparksupport.com\/blog\/web-scraping-a-basic-know-how\/#article","isPartOf":{"@id":"https:\/\/sparksupport.com\/blog\/web-scraping-a-basic-know-how\/"},"author":{"name":"Shameem Khalid","@id":"https:\/\/sparksupport.com\/blog\/#\/schema\/person\/7e7199cb9f41aaf67868b7d4d4a4cf39"},"headline":"Web Scraping : A basic know-how.","datePublished":"2010-08-02T13:19:55+00:00","dateModified":"2024-06-26T11:57:57+00:00","mainEntityOfPage":{"@id":"https:\/\/sparksupport.com\/blog\/web-scraping-a-basic-know-how\/"},"wordCount":700,"commentCount":0,"publisher":{"@id":"https:\/\/sparksupport.com\/blog\/#organization"},"image":{"@id":"https:\/\/sparksupport.com\/blog\/web-scraping-a-basic-know-how\/#primaryimage"},"thumbnailUrl":"https:\/\/sparksupport.com\/blog\/wp-content\/uploads\/2010\/08\/1.png","keywords":["bots","perl","scraping","tor","web crawling"],"articleSection":["Articles","linux","perl"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/sparksupport.com\/blog\/web-scraping-a-basic-know-how\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/sparksupport.com\/blog\/web-scraping-a-basic-know-how\/","url":"https:\/\/sparksupport.com\/blog\/web-scraping-a-basic-know-how\/","name":"Web Scraping : A basic know-how. - complete guide","isPartOf":{"@id":"https:\/\/sparksupport.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/sparksupport.com\/blog\/web-scraping-a-basic-know-how\/#primaryimage"},"image":{"@id":"https:\/\/sparksupport.com\/blog\/web-scraping-a-basic-know-how\/#primaryimage"},"thumbnailUrl":"https:\/\/sparksupport.com\/blog\/wp-content\/uploads\/2010\/08\/1.png","datePublished":"2010-08-02T13:19:55+00:00","dateModified":"2024-06-26T11:57:57+00:00","description":"Are you searching for web scraping? Let's explore the methods and specially built applications for extracting useful information from the websites.","breadcrumb":{"@id":"https:\/\/sparksupport.com\/blog\/web-scraping-a-basic-know-how\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/sparksupport.com\/blog\/web-scraping-a-basic-know-how\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/sparksupport.com\/blog\/web-scraping-a-basic-know-how\/#primaryimage","url":"https:\/\/sparksupport.com\/blog\/wp-content\/uploads\/2010\/08\/1.png","contentUrl":"https:\/\/sparksupport.com\/blog\/wp-content\/uploads\/2010\/08\/1.png","width":900,"height":503},{"@type":"BreadcrumbList","@id":"https:\/\/sparksupport.com\/blog\/web-scraping-a-basic-know-how\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/sparksupport.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Web Scraping : A basic know-how."}]},{"@type":"WebSite","@id":"https:\/\/sparksupport.com\/blog\/#website","url":"https:\/\/sparksupport.com\/blog\/","name":"SparkSupport Blog","description":"SparkSupport Blogs","publisher":{"@id":"https:\/\/sparksupport.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/sparksupport.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/sparksupport.com\/blog\/#organization","name":"SparkSupport","url":"https:\/\/sparksupport.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/sparksupport.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/sparksupport.com\/blog\/wp-content\/uploads\/2019\/08\/cropped-logo-1.jpg","contentUrl":"https:\/\/sparksupport.com\/blog\/wp-content\/uploads\/2019\/08\/cropped-logo-1.jpg","width":216,"height":44,"caption":"SparkSupport"},"image":{"@id":"https:\/\/sparksupport.com\/blog\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/sparksupport.com\/blog\/#\/schema\/person\/7e7199cb9f41aaf67868b7d4d4a4cf39","name":"Shameem Khalid","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/11295ac6c7aadbe227c1b4ddff880dd32e1ca53f15d50d3f5f724ceda03929a0?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/11295ac6c7aadbe227c1b4ddff880dd32e1ca53f15d50d3f5f724ceda03929a0?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/11295ac6c7aadbe227c1b4ddff880dd32e1ca53f15d50d3f5f724ceda03929a0?s=96&d=mm&r=g","caption":"Shameem Khalid"},"url":"https:\/\/sparksupport.com\/blog\/author\/shameem\/"}]}},"_links":{"self":[{"href":"https:\/\/sparksupport.com\/blog\/wp-json\/wp\/v2\/posts\/843","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/sparksupport.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/sparksupport.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/sparksupport.com\/blog\/wp-json\/wp\/v2\/users\/9"}],"replies":[{"embeddable":true,"href":"https:\/\/sparksupport.com\/blog\/wp-json\/wp\/v2\/comments?post=843"}],"version-history":[{"count":0,"href":"https:\/\/sparksupport.com\/blog\/wp-json\/wp\/v2\/posts\/843\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/sparksupport.com\/blog\/wp-json\/wp\/v2\/media\/5089"}],"wp:attachment":[{"href":"https:\/\/sparksupport.com\/blog\/wp-json\/wp\/v2\/media?parent=843"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/sparksupport.com\/blog\/wp-json\/wp\/v2\/categories?post=843"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/sparksupport.com\/blog\/wp-json\/wp\/v2\/tags?post=843"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}