<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Webcrawling website for certain webpage that has the word I am interesting to find. in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Webcrawling-website-for-certain-webpage-that-has-the-word-I-am/m-p/412094#M100767</link>
    <description>&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;I am trying to run the code to web crawl all the webpages in a certain website. After the web crawl is complete to search the webpages they found and see if the selected words can be located in the webpages. If the selected words are located, save the webpage. If the words are not located on the webpage, delete the webpage.&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;The website on the program and words are not the final but a prototype. The website and words are more detail and strenuous.&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT color="navy" face="Courier New" size="2"&gt;&lt;STRONG&gt;data&lt;/STRONG&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" size="2"&gt; work.links_to_crawl;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT color="blue" face="Courier New" size="2"&gt;length&lt;/FONT&gt;&lt;FONT face="Courier New" size="2"&gt; url $&lt;/FONT&gt;&lt;FONT color="teal" face="Courier New" size="2"&gt;&lt;STRONG&gt;256&lt;/STRONG&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" size="2"&gt;;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT color="blue" face="Courier New" size="2"&gt;input&lt;/FONT&gt;&lt;FONT face="Courier New" size="2"&gt; url $;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT color="blue" face="Courier New" size="2"&gt;datalines&lt;/FONT&gt;&lt;FONT face="Courier New" size="2"&gt;;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;&lt;A href="http://www.dunbarhsdc.org/" target="_blank"&gt;http://www.dunbarhsdc.org/&lt;/A&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT color="navy" face="Courier New" size="2"&gt;&lt;STRONG&gt;run&lt;/STRONG&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" size="2"&gt;;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT color="navy" face="Courier New" size="2"&gt;&lt;STRONG&gt;%macro&lt;/STRONG&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" size="2"&gt; crawler();&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT color="blue" face="Courier New" size="2"&gt;%let&lt;/FONT&gt;&lt;FONT face="Courier New" size="2"&gt; html_num = 1;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;data work.links_crawled;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;length url $&lt;/FONT&gt;&lt;FONT color="teal" face="Courier New" size="2"&gt;&lt;STRONG&gt;256&lt;/STRONG&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" size="2"&gt;;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;run;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;%next_crawl:&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT color="green" face="Courier New" size="2"&gt;/* pop the next url off */&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT color="blue" face="Courier New" size="2"&gt;%let&lt;/FONT&gt;&lt;FONT face="Courier New" size="2"&gt; next_url = ;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;data work.links_to_crawl;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;set work.links_to_crawl;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;if _n_ eq &lt;/FONT&gt;&lt;FONT color="teal" face="Courier New" size="2"&gt;&lt;STRONG&gt;1&lt;/STRONG&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" size="2"&gt; then call symput(&lt;/FONT&gt;&lt;FONT color="purple" face="Courier New" size="2"&gt;"next_url"&lt;/FONT&gt;&lt;FONT face="Courier New" size="2"&gt;, url);&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;else output;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;run;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT color="blue" face="Courier New" size="2"&gt;%let&lt;/FONT&gt;&lt;FONT face="Courier New" size="2"&gt; next_url = %trim(%left(&amp;amp;next_url));&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT color="blue" face="Courier New" size="2"&gt;%if&lt;/FONT&gt; &lt;FONT color="purple" face="Courier New" size="2"&gt;"&amp;amp;next_url"&lt;/FONT&gt;&lt;FONT face="Courier New" size="2"&gt; ne &lt;/FONT&gt;&lt;FONT color="purple" face="Courier New" size="2"&gt;""&lt;/FONT&gt; &lt;FONT color="blue" face="Courier New" size="2"&gt;%then&lt;/FONT&gt; &lt;FONT color="blue" face="Courier New" size="2"&gt;%do&lt;/FONT&gt;&lt;FONT face="Courier New" size="2"&gt;;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT color="blue" face="Courier New" size="2"&gt;%put&lt;/FONT&gt;&lt;FONT face="Courier New" size="2"&gt; crawling &amp;amp;next_url ... ;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT color="green" face="Courier New" size="2"&gt;/* crawl the url */&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;filename _nexturl url &lt;/FONT&gt;&lt;FONT color="purple" face="Courier New" size="2"&gt;"&amp;amp;next_url"&lt;/FONT&gt;&lt;FONT face="Courier New" size="2"&gt;;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT color="green" face="Courier New" size="2"&gt;/* put the file we crawled here */&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;filename htmlfile &lt;/FONT&gt;&lt;FONT color="purple" face="Courier New" size="2"&gt;"file%trim(&amp;amp;html_num).html"&lt;/FONT&gt;&lt;FONT face="Courier New" size="2"&gt;;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT color="green" face="Courier New" size="2"&gt;/* find more urls */&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;data work._urls(keep=url);&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;length url $&lt;/FONT&gt;&lt;FONT color="teal" face="Courier New" size="2"&gt;&lt;STRONG&gt;256&lt;/STRONG&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" size="2"&gt; ;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;file htmlfile;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;infile _nexturl length=len;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;input text &lt;/FONT&gt;&lt;FONT color="teal" face="Courier New" size="2"&gt;$varying2000.&lt;/FONT&gt;&lt;FONT face="Courier New" size="2"&gt; len;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;put text;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;start = &lt;/FONT&gt;&lt;FONT color="teal" face="Courier New" size="2"&gt;&lt;STRONG&gt;1&lt;/STRONG&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" size="2"&gt;;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;stop = length(text);&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;if _n_ = &lt;/FONT&gt;&lt;FONT color="teal" face="Courier New" size="2"&gt;&lt;STRONG&gt;1&lt;/STRONG&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" size="2"&gt; then do;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;retain patternID;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;pattern = &lt;/FONT&gt;&lt;FONT color="purple" face="Courier New" size="2"&gt;'/href="([^"]+)"/i'&lt;/FONT&gt;&lt;FONT face="Courier New" size="2"&gt;;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;patternID = prxparse(pattern);&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;end;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT color="green" face="Courier New" size="2"&gt;/* Use PRXNEXT to find the first instance of the pattern, */&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT color="green" face="Courier New" size="2"&gt;/* then use DO WHILE to find all further instances. */&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT color="green" face="Courier New" size="2"&gt;/* PRXNEXT changes the start parameter so that searching */&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT color="green" face="Courier New" size="2"&gt;/* begins again after the last match. */&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;call prxnext(patternID, start, stop, text, position, length);&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;do while (position ^= &lt;/FONT&gt;&lt;FONT color="teal" face="Courier New" size="2"&gt;&lt;STRONG&gt;0&lt;/STRONG&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" size="2"&gt;);&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;url = substr(text, position+&lt;/FONT&gt;&lt;FONT color="teal" face="Courier New" size="2"&gt;&lt;STRONG&gt;6&lt;/STRONG&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" size="2"&gt;, length-&lt;/FONT&gt;&lt;FONT color="teal" face="Courier New" size="2"&gt;&lt;STRONG&gt;7&lt;/STRONG&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" size="2"&gt;);&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT color="green" face="Courier New" size="2"&gt;* put url=;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;output;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;call prxnext(patternID, start, stop, text, position, length);&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;end;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;run;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT color="green" face="Courier New" size="2"&gt;/* add the current link to the list of urls we have already crawled */&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;data work._old_link;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;url = &lt;/FONT&gt;&lt;FONT color="purple" face="Courier New" size="2"&gt;"&amp;amp;next_url"&lt;/FONT&gt;&lt;FONT face="Courier New" size="2"&gt;;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;run;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;proc append base=work.links_crawled data=work._old_link;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;run;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT color="green" face="Courier New" size="2"&gt;/* only add urls that we haven't already crawled or that aren't queued up to be crawled */&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;proc sql noprint;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;create table work._append as&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;select url &lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;from work._urls&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;where url not in (select url from work.links_crawled)&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;and url not in (select url from work.links_to_crawl);&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;quit;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT color="green" face="Courier New" size="2"&gt;/* only add urls that are absolute (http://...) */&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;data work._append;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;set work._append;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;absolute_url = substrn(url, &lt;/FONT&gt;&lt;FONT color="teal" face="Courier New" size="2"&gt;&lt;STRONG&gt;1&lt;/STRONG&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" size="2"&gt;, &lt;/FONT&gt;&lt;FONT color="teal" face="Courier New" size="2"&gt;&lt;STRONG&gt;7&lt;/STRONG&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" size="2"&gt;);&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;put absolute_url=;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;if absolute_url eq &lt;/FONT&gt;&lt;FONT color="purple" face="Courier New" size="2"&gt;"http://"&lt;/FONT&gt;&lt;FONT face="Courier New" size="2"&gt; ; &lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;drop absolute_url;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;run;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT color="green" face="Courier New" size="2"&gt;/* add new links */&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;proc append base=work.links_to_crawl data=work._append force;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;run;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT color="green" face="Courier New" size="2"&gt;/* increment our file number */&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT color="blue" face="Courier New" size="2"&gt;%let&lt;/FONT&gt;&lt;FONT face="Courier New" size="2"&gt; html_num = &lt;/FONT&gt;&lt;FONT color="blue" face="Courier New" size="2"&gt;%eval&lt;/FONT&gt;&lt;FONT face="Courier New" size="2"&gt;(&amp;amp;html_num + 1);&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT color="green" face="Courier New" size="2"&gt;/* loop */&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT color="blue" face="Courier New" size="2"&gt;%goto&lt;/FONT&gt;&lt;FONT face="Courier New" size="2"&gt; next_crawl;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT color="blue" face="Courier New" size="2"&gt;%end&lt;/FONT&gt;&lt;FONT face="Courier New" size="2"&gt;;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT color="navy" face="Courier New" size="2"&gt;&lt;STRONG&gt;%mend&lt;/STRONG&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" size="2"&gt; crawler;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;%&lt;STRONG&gt;&lt;I&gt;crawler&lt;/I&gt;&lt;/STRONG&gt;();&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT color="navy" face="Courier New" size="2"&gt;&lt;STRONG&gt;data&lt;/STRONG&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" size="2"&gt; crawler();&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT color="green" face="Courier New" size="2"&gt;*length chapter $200;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT color="green" face="Courier New" size="2"&gt;* infile eSUG length=len lrecl=32767;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT color="green" face="Courier New" size="2"&gt;*input line $varying32767. len;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;uline= upcase(line);&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT color="blue" face="Courier New" size="2"&gt;if&lt;/FONT&gt;&lt;FONT face="Courier New" size="2"&gt; find(uline,&lt;/FONT&gt;&lt;FONT color="purple" face="Courier New" size="2"&gt;"example"&lt;/FONT&gt;&lt;FONT face="Courier New" size="2"&gt;) and find(uline,&lt;/FONT&gt;&lt;FONT color="purple" face="Courier New" size="2"&gt;"dunbar"&lt;/FONT&gt;&lt;FONT face="Courier New" size="2"&gt;) or find(uline,&lt;/FONT&gt;&lt;FONT color="purple" face="Courier New" size="2"&gt;"principal"&lt;/FONT&gt;&lt;FONT face="Courier New" size="2"&gt;)or find(uline,&lt;/FONT&gt;&lt;FONT color="purple" face="Courier New" size="2"&gt;"doctor"&lt;/FONT&gt;&lt;FONT face="Courier New" size="2"&gt;)&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;or find(uline,&lt;/FONT&gt;&lt;FONT color="purple" face="Courier New" size="2"&gt;"DR"&lt;/FONT&gt;&lt;FONT face="Courier New" size="2"&gt;)or find(uline,&lt;/FONT&gt;&lt;FONT color="purple" face="Courier New" size="2"&gt;"football"&lt;/FONT&gt;&lt;FONT face="Courier New" size="2"&gt;)or find(uline,&lt;/FONT&gt;&lt;FONT color="purple" face="Courier New" size="2"&gt;"math"&lt;/FONT&gt;&lt;FONT face="Courier New" size="2"&gt;)or find(uline,&lt;/FONT&gt;&lt;FONT color="purple" face="Courier New" size="2"&gt;"english"&lt;/FONT&gt;&lt;FONT face="Courier New" size="2"&gt;)&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT color="blue" face="Courier New" size="2"&gt;then&lt;/FONT&gt; &lt;FONT color="blue" face="Courier New" size="2"&gt;do&lt;/FONT&gt;&lt;FONT face="Courier New" size="2"&gt;;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;chapter=scan(line,&lt;/FONT&gt;&lt;FONT color="teal" face="Courier New" size="2"&gt;&lt;STRONG&gt;2&lt;/STRONG&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" size="2"&gt;,&lt;/FONT&gt;&lt;FONT color="purple" face="Courier New" size="2"&gt;'"'&lt;/FONT&gt;&lt;FONT face="Courier New" size="2"&gt;);&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT color="blue" face="Courier New" size="2"&gt;output&lt;/FONT&gt;&lt;FONT face="Courier New" size="2"&gt;;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT color="blue" face="Courier New" size="2"&gt;end&lt;/FONT&gt;&lt;FONT face="Courier New" size="2"&gt;;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT color="navy" face="Courier New" size="2"&gt;&lt;STRONG&gt;run&lt;/STRONG&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" size="2"&gt;;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;</description>
    <pubDate>Thu, 09 Nov 2017 19:28:58 GMT</pubDate>
    <dc:creator>kevin12</dc:creator>
    <dc:date>2017-11-09T19:28:58Z</dc:date>
    <item>
      <title>Webcrawling website for certain webpage that has the word I am interesting to find.</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Webcrawling-website-for-certain-webpage-that-has-the-word-I-am/m-p/412094#M100767</link>
      <description>&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;I am trying to run the code to web crawl all the webpages in a certain website. After the web crawl is complete to search the webpages they found and see if the selected words can be located in the webpages. If the selected words are located, save the webpage. If the words are not located on the webpage, delete the webpage.&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;The website on the program and words are not the final but a prototype. The website and words are more detail and strenuous.&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT color="navy" face="Courier New" size="2"&gt;&lt;STRONG&gt;data&lt;/STRONG&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" size="2"&gt; work.links_to_crawl;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT color="blue" face="Courier New" size="2"&gt;length&lt;/FONT&gt;&lt;FONT face="Courier New" size="2"&gt; url $&lt;/FONT&gt;&lt;FONT color="teal" face="Courier New" size="2"&gt;&lt;STRONG&gt;256&lt;/STRONG&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" size="2"&gt;;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT color="blue" face="Courier New" size="2"&gt;input&lt;/FONT&gt;&lt;FONT face="Courier New" size="2"&gt; url $;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT color="blue" face="Courier New" size="2"&gt;datalines&lt;/FONT&gt;&lt;FONT face="Courier New" size="2"&gt;;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;&lt;A href="http://www.dunbarhsdc.org/" target="_blank"&gt;http://www.dunbarhsdc.org/&lt;/A&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT color="navy" face="Courier New" size="2"&gt;&lt;STRONG&gt;run&lt;/STRONG&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" size="2"&gt;;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT color="navy" face="Courier New" size="2"&gt;&lt;STRONG&gt;%macro&lt;/STRONG&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" size="2"&gt; crawler();&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT color="blue" face="Courier New" size="2"&gt;%let&lt;/FONT&gt;&lt;FONT face="Courier New" size="2"&gt; html_num = 1;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;data work.links_crawled;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;length url $&lt;/FONT&gt;&lt;FONT color="teal" face="Courier New" size="2"&gt;&lt;STRONG&gt;256&lt;/STRONG&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" size="2"&gt;;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;run;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;%next_crawl:&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT color="green" face="Courier New" size="2"&gt;/* pop the next url off */&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT color="blue" face="Courier New" size="2"&gt;%let&lt;/FONT&gt;&lt;FONT face="Courier New" size="2"&gt; next_url = ;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;data work.links_to_crawl;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;set work.links_to_crawl;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;if _n_ eq &lt;/FONT&gt;&lt;FONT color="teal" face="Courier New" size="2"&gt;&lt;STRONG&gt;1&lt;/STRONG&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" size="2"&gt; then call symput(&lt;/FONT&gt;&lt;FONT color="purple" face="Courier New" size="2"&gt;"next_url"&lt;/FONT&gt;&lt;FONT face="Courier New" size="2"&gt;, url);&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;else output;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;run;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT color="blue" face="Courier New" size="2"&gt;%let&lt;/FONT&gt;&lt;FONT face="Courier New" size="2"&gt; next_url = %trim(%left(&amp;amp;next_url));&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT color="blue" face="Courier New" size="2"&gt;%if&lt;/FONT&gt; &lt;FONT color="purple" face="Courier New" size="2"&gt;"&amp;amp;next_url"&lt;/FONT&gt;&lt;FONT face="Courier New" size="2"&gt; ne &lt;/FONT&gt;&lt;FONT color="purple" face="Courier New" size="2"&gt;""&lt;/FONT&gt; &lt;FONT color="blue" face="Courier New" size="2"&gt;%then&lt;/FONT&gt; &lt;FONT color="blue" face="Courier New" size="2"&gt;%do&lt;/FONT&gt;&lt;FONT face="Courier New" size="2"&gt;;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT color="blue" face="Courier New" size="2"&gt;%put&lt;/FONT&gt;&lt;FONT face="Courier New" size="2"&gt; crawling &amp;amp;next_url ... ;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT color="green" face="Courier New" size="2"&gt;/* crawl the url */&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;filename _nexturl url &lt;/FONT&gt;&lt;FONT color="purple" face="Courier New" size="2"&gt;"&amp;amp;next_url"&lt;/FONT&gt;&lt;FONT face="Courier New" size="2"&gt;;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT color="green" face="Courier New" size="2"&gt;/* put the file we crawled here */&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;filename htmlfile &lt;/FONT&gt;&lt;FONT color="purple" face="Courier New" size="2"&gt;"file%trim(&amp;amp;html_num).html"&lt;/FONT&gt;&lt;FONT face="Courier New" size="2"&gt;;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT color="green" face="Courier New" size="2"&gt;/* find more urls */&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;data work._urls(keep=url);&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;length url $&lt;/FONT&gt;&lt;FONT color="teal" face="Courier New" size="2"&gt;&lt;STRONG&gt;256&lt;/STRONG&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" size="2"&gt; ;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;file htmlfile;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;infile _nexturl length=len;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;input text &lt;/FONT&gt;&lt;FONT color="teal" face="Courier New" size="2"&gt;$varying2000.&lt;/FONT&gt;&lt;FONT face="Courier New" size="2"&gt; len;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;put text;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;start = &lt;/FONT&gt;&lt;FONT color="teal" face="Courier New" size="2"&gt;&lt;STRONG&gt;1&lt;/STRONG&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" size="2"&gt;;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;stop = length(text);&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;if _n_ = &lt;/FONT&gt;&lt;FONT color="teal" face="Courier New" size="2"&gt;&lt;STRONG&gt;1&lt;/STRONG&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" size="2"&gt; then do;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;retain patternID;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;pattern = &lt;/FONT&gt;&lt;FONT color="purple" face="Courier New" size="2"&gt;'/href="([^"]+)"/i'&lt;/FONT&gt;&lt;FONT face="Courier New" size="2"&gt;;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;patternID = prxparse(pattern);&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;end;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT color="green" face="Courier New" size="2"&gt;/* Use PRXNEXT to find the first instance of the pattern, */&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT color="green" face="Courier New" size="2"&gt;/* then use DO WHILE to find all further instances. */&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT color="green" face="Courier New" size="2"&gt;/* PRXNEXT changes the start parameter so that searching */&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT color="green" face="Courier New" size="2"&gt;/* begins again after the last match. */&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;call prxnext(patternID, start, stop, text, position, length);&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;do while (position ^= &lt;/FONT&gt;&lt;FONT color="teal" face="Courier New" size="2"&gt;&lt;STRONG&gt;0&lt;/STRONG&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" size="2"&gt;);&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;url = substr(text, position+&lt;/FONT&gt;&lt;FONT color="teal" face="Courier New" size="2"&gt;&lt;STRONG&gt;6&lt;/STRONG&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" size="2"&gt;, length-&lt;/FONT&gt;&lt;FONT color="teal" face="Courier New" size="2"&gt;&lt;STRONG&gt;7&lt;/STRONG&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" size="2"&gt;);&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT color="green" face="Courier New" size="2"&gt;* put url=;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;output;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;call prxnext(patternID, start, stop, text, position, length);&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;end;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;run;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT color="green" face="Courier New" size="2"&gt;/* add the current link to the list of urls we have already crawled */&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;data work._old_link;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;url = &lt;/FONT&gt;&lt;FONT color="purple" face="Courier New" size="2"&gt;"&amp;amp;next_url"&lt;/FONT&gt;&lt;FONT face="Courier New" size="2"&gt;;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;run;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;proc append base=work.links_crawled data=work._old_link;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;run;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT color="green" face="Courier New" size="2"&gt;/* only add urls that we haven't already crawled or that aren't queued up to be crawled */&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;proc sql noprint;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;create table work._append as&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;select url &lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;from work._urls&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;where url not in (select url from work.links_crawled)&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;and url not in (select url from work.links_to_crawl);&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;quit;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT color="green" face="Courier New" size="2"&gt;/* only add urls that are absolute (http://...) */&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;data work._append;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;set work._append;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;absolute_url = substrn(url, &lt;/FONT&gt;&lt;FONT color="teal" face="Courier New" size="2"&gt;&lt;STRONG&gt;1&lt;/STRONG&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" size="2"&gt;, &lt;/FONT&gt;&lt;FONT color="teal" face="Courier New" size="2"&gt;&lt;STRONG&gt;7&lt;/STRONG&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" size="2"&gt;);&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;put absolute_url=;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;if absolute_url eq &lt;/FONT&gt;&lt;FONT color="purple" face="Courier New" size="2"&gt;"http://"&lt;/FONT&gt;&lt;FONT face="Courier New" size="2"&gt; ; &lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;drop absolute_url;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;run;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT color="green" face="Courier New" size="2"&gt;/* add new links */&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;proc append base=work.links_to_crawl data=work._append force;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;run;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT color="green" face="Courier New" size="2"&gt;/* increment our file number */&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT color="blue" face="Courier New" size="2"&gt;%let&lt;/FONT&gt;&lt;FONT face="Courier New" size="2"&gt; html_num = &lt;/FONT&gt;&lt;FONT color="blue" face="Courier New" size="2"&gt;%eval&lt;/FONT&gt;&lt;FONT face="Courier New" size="2"&gt;(&amp;amp;html_num + 1);&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT color="green" face="Courier New" size="2"&gt;/* loop */&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT color="blue" face="Courier New" size="2"&gt;%goto&lt;/FONT&gt;&lt;FONT face="Courier New" size="2"&gt; next_crawl;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT color="blue" face="Courier New" size="2"&gt;%end&lt;/FONT&gt;&lt;FONT face="Courier New" size="2"&gt;;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT color="navy" face="Courier New" size="2"&gt;&lt;STRONG&gt;%mend&lt;/STRONG&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" size="2"&gt; crawler;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;%&lt;STRONG&gt;&lt;I&gt;crawler&lt;/I&gt;&lt;/STRONG&gt;();&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT color="navy" face="Courier New" size="2"&gt;&lt;STRONG&gt;data&lt;/STRONG&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" size="2"&gt; crawler();&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT color="green" face="Courier New" size="2"&gt;*length chapter $200;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT color="green" face="Courier New" size="2"&gt;* infile eSUG length=len lrecl=32767;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT color="green" face="Courier New" size="2"&gt;*input line $varying32767. len;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;uline= upcase(line);&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT color="blue" face="Courier New" size="2"&gt;if&lt;/FONT&gt;&lt;FONT face="Courier New" size="2"&gt; find(uline,&lt;/FONT&gt;&lt;FONT color="purple" face="Courier New" size="2"&gt;"example"&lt;/FONT&gt;&lt;FONT face="Courier New" size="2"&gt;) and find(uline,&lt;/FONT&gt;&lt;FONT color="purple" face="Courier New" size="2"&gt;"dunbar"&lt;/FONT&gt;&lt;FONT face="Courier New" size="2"&gt;) or find(uline,&lt;/FONT&gt;&lt;FONT color="purple" face="Courier New" size="2"&gt;"principal"&lt;/FONT&gt;&lt;FONT face="Courier New" size="2"&gt;)or find(uline,&lt;/FONT&gt;&lt;FONT color="purple" face="Courier New" size="2"&gt;"doctor"&lt;/FONT&gt;&lt;FONT face="Courier New" size="2"&gt;)&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;or find(uline,&lt;/FONT&gt;&lt;FONT color="purple" face="Courier New" size="2"&gt;"DR"&lt;/FONT&gt;&lt;FONT face="Courier New" size="2"&gt;)or find(uline,&lt;/FONT&gt;&lt;FONT color="purple" face="Courier New" size="2"&gt;"football"&lt;/FONT&gt;&lt;FONT face="Courier New" size="2"&gt;)or find(uline,&lt;/FONT&gt;&lt;FONT color="purple" face="Courier New" size="2"&gt;"math"&lt;/FONT&gt;&lt;FONT face="Courier New" size="2"&gt;)or find(uline,&lt;/FONT&gt;&lt;FONT color="purple" face="Courier New" size="2"&gt;"english"&lt;/FONT&gt;&lt;FONT face="Courier New" size="2"&gt;)&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT color="blue" face="Courier New" size="2"&gt;then&lt;/FONT&gt; &lt;FONT color="blue" face="Courier New" size="2"&gt;do&lt;/FONT&gt;&lt;FONT face="Courier New" size="2"&gt;;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;chapter=scan(line,&lt;/FONT&gt;&lt;FONT color="teal" face="Courier New" size="2"&gt;&lt;STRONG&gt;2&lt;/STRONG&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" size="2"&gt;,&lt;/FONT&gt;&lt;FONT color="purple" face="Courier New" size="2"&gt;'"'&lt;/FONT&gt;&lt;FONT face="Courier New" size="2"&gt;);&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT color="blue" face="Courier New" size="2"&gt;output&lt;/FONT&gt;&lt;FONT face="Courier New" size="2"&gt;;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT color="blue" face="Courier New" size="2"&gt;end&lt;/FONT&gt;&lt;FONT face="Courier New" size="2"&gt;;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT color="navy" face="Courier New" size="2"&gt;&lt;STRONG&gt;run&lt;/STRONG&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" size="2"&gt;;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;</description>
      <pubDate>Thu, 09 Nov 2017 19:28:58 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Webcrawling-website-for-certain-webpage-that-has-the-word-I-am/m-p/412094#M100767</guid>
      <dc:creator>kevin12</dc:creator>
      <dc:date>2017-11-09T19:28:58Z</dc:date>
    </item>
    <item>
      <title>Re: Webcrawling website for certain webpage that has the word I am interesting to find.</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Webcrawling-website-for-certain-webpage-that-has-the-word-I-am/m-p/412099#M100770</link>
      <description>&lt;P&gt;Is there a question here or are you sharing code?&lt;/P&gt;</description>
      <pubDate>Thu, 09 Nov 2017 19:52:43 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Webcrawling-website-for-certain-webpage-that-has-the-word-I-am/m-p/412099#M100770</guid>
      <dc:creator>Reeza</dc:creator>
      <dc:date>2017-11-09T19:52:43Z</dc:date>
    </item>
    <item>
      <title>Re: Webcrawling website for certain webpage that has the word I am interesting to find.</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Webcrawling-website-for-certain-webpage-that-has-the-word-I-am/m-p/412114#M100778</link>
      <description>&lt;P&gt;The end part of the program, the word search at the webpage level does not work. I was asking what I need to do for it to work. I apologize that I did not place that in the initial post.&lt;/P&gt;</description>
      <pubDate>Thu, 09 Nov 2017 20:25:22 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Webcrawling-website-for-certain-webpage-that-has-the-word-I-am/m-p/412114#M100778</guid>
      <dc:creator>kevin12</dc:creator>
      <dc:date>2017-11-09T20:25:22Z</dc:date>
    </item>
    <item>
      <title>Re: Webcrawling website for certain webpage that has the word I am interesting to find.</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Webcrawling-website-for-certain-webpage-that-has-the-word-I-am/m-p/412118#M100782</link>
      <description>&lt;P&gt;It's not pointed to a file or anything and you've commented out the infile statements.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;And what does 'not work' mean?&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;You should also look at the findW instead of find and look at the third parameter to ignore case, FIND and find and Find are three different values.&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 09 Nov 2017 20:30:16 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Webcrawling-website-for-certain-webpage-that-has-the-word-I-am/m-p/412118#M100782</guid>
      <dc:creator>Reeza</dc:creator>
      <dc:date>2017-11-09T20:30:16Z</dc:date>
    </item>
  </channel>
</rss>

