web scrape simulate onclick

This is the place for queries that don't fit in any of the other categories.

web scrape simulate onclick

Postby xopenex » Tue Apr 22, 2014 7:48 pm

Hello,

I am trying to scrape or mine data from an online database.

1. I log into the website
2. I navigate to a form, we will call it "formpage"
3. I select option in a drop down list on "formpage" which causes a new window lets call it "searchpage" to pop open.
4. I enter my search parameters on "searchpage" and submit them
5. A new page, lets call "searchresult" page, then populates page from step 4 "searchpage" with a list of results. They are in hyperlink format.
6. I make a selection of one of the hyperlink results and it populates the fields in the form in step 2 "formpage" with information and then closes the "searchpage"/"searchresult" page.

Here is some source code from "searchpage"

Code: Select all
<html>
<head>
   <LINK REL="stylesheet" type="text/css" href="../css/PracticeManagement.css" />      
   <script type="text/javascript" src="../includes/javascripts/tableSortOnHeader.js"></script>   
   <script language="JavaScript" src="../includes/javascripts/PracticeCommon.js"></script>
   <script language="JavaScript1.2">
   function searchAgain()
   {
      window.location.href="RenterSearchIframe.wrs?action=parent.selectRenter(&createFlag=0";      
   }
      
   function frmSubmit()
   {
      f=window.document.form1;
      if(f.fname.value.length==0 && f.lname.value.length==0 && f.rid.value.length==0 )
      {
         alert("Please enter first name or last name or rid as search criteria.");
      }
      else
      {
         f.submit();
      }
   }
   
   function selectDoc(id,upin,rid,lname,mname,fname)
   {
      lname=lname.replace(/'/g, '\\\'');
      mname=mname.replace(/'/g, '\\\'');
      fname=fname.replace(/'/g, '\\\'');
         eval("parent.selectRenter("+id+", '"+upin+"', '"+rid+"', '"+lname+"', '"+mname+"', '"+fname+"')");
         
      //hideDocSearch();         
   }
   
   /*function hideDocSearch()
   {
      top.searchLayer.hideLayer();   
   }*/
   
   function reSize()
   {
      var x=document.body.scrollHeight;
      if (x<=310)
      {
         height=x;
         width=340;
      }   
      else
      {
         height=310;   
         width=357;
      }   
   
      if (parent.document.getElementById("searchIframe"))
         parent.document.getElementById("searchIframe").style.height=height;
      if (parent.document.getElementById("hiddenIframe"))
         parent.document.getElementById("hiddenIframe").style.height=height;
      if (parent.searchLayer)
         parent.searchLayer.reSizeLayer();
   }
      
   </script>
</head>


<body onLoad="reSize();" style="overflow-x: hidden;">
   
   <div style="width:100%; height:auto; margin-top:4px;font:12px Arial,Helvetica,sans-serif;padding:15 20 20 30; text-align:left; background-color: #FFFFFF;">
      <form name="form1" method="post" action="RenterSearchIframe.wrs?search=1&action=parent.selectRenter(&createFlag=0">   
         <div>First Name </div>
         <div><input type="text" name="fname"></div>
         <div style="margin-top:10px;">Last Name</div>
         <div><input type="text" name="lname"></div>
         <div style="margin-top:10px;">Middle Initial</div>
         <div><input type="text" name="mi"></div>
         <div style="margin-top:10px;">RID</div>
         <div><input type="text" name="rid"></div>
         <div style="margin-top:10px;">State</div>
         <div>
                <select name="state">
                <option value=""></option>
                                    <option value=""  selected></option>
                                    <option value="AK" >Alaska</option>
                                    <option value="AL" >Alabama</option>
                                    <option value="AR" >Arkansas</option>
                                    <option value="AS" >American Samoa</option>
                                    <option value="AZ" >Arizona</option>
                                    <option value="CA" >California</option>
                                    <option value="CO" >Colorado</option>
                                    <option value="CT" >Connecticut</option>
                                    <option value="DC" >District of Columbia</option>
                                    <option value="DE" >Delaware</option>
                                    <option value="FL" >Florida</option>
                                    <option value="GA" >Georgia</option>
                                    <option value="GU" >Guam</option>
                                    <option value="HI" >Hawaii</option>
                                    <option value="IA" >Iowa</option>
                                    <option value="ID" >Idaho</option>
                                    <option value="IL" >Illinois</option>
                                    <option value="IN" >Indiana</option>
                                    <option value="KS" >Kansas</option>
                                    <option value="KY" >Kentucky</option>
                                    <option value="LA" >Louisiana</option>
                                    <option value="MA" >Massachusetts</option>
                                    <option value="MD" >Maryland</option>
                                    <option value="ME" >Maine</option>
                                    <option value="MI" >Michigan</option>
                                    <option value="MN" >Minnesota</option>
                                    <option value="MO" >Missouri</option>
                                    <option value="MP" >Northern Mariana Islands</option>
                                    <option value="MS" >Mississippi</option>
                                    <option value="MT" >Montana</option>
                                    <option value="NC" >North Carolina</option>
                                    <option value="ND" >North Dakota</option>
                                    <option value="NE" >Nebraska</option>
                                    <option value="NH" >New Hampshire</option>
                                    <option value="NJ" >New Jersey</option>
                                    <option value="NM" >New Mexico</option>
                                    <option value="NV" >Nevada</option>
                                    <option value="NY" >New York</option>
                                    <option value="OH" >Ohio</option>
                                    <option value="OK" >Oklahoma</option>
                                    <option value="OR" >Oregon</option>
                                    <option value="PA" >Pennsylvania</option>
                                    <option value="PR" >Puerto Rico</option>
                                    <option value="PW" >Palau</option>
                                    <option value="RI" >Rhode Island</option>
                                    <option value="SC" >South Carolina</option>
                                    <option value="SD" >South Dakota</option>
                                    <option value="TN" >Tennessee</option>
                                    <option value="TX" >Texas</option>
                                    <option value="UT" >Utah</option>
                                    <option value="VA" >Virginia</option>
                                    <option value="VI" >Virgin Islands</option>
                                    <option value="VT" >Vermont</option>
                                    <option value="WA" >Washington</option>
                                    <option value="WI" >Wisconsin</option>
                                    <option value="WV" >West Virginia</option>
                                    <option value="WY" >Wyoming</option>
                                </select>
         </div>
         <div style="margin-left: 50px; margin-top:20px"><input type="button" name="cmdSubmit" value="Submit" onClick="frmSubmit()" style="font-weight:bold; font-size:8pt;"></div>
      </form>
   </div>
   
</body>
</html>




So I enter my search criteria into the form associated with the source code above. Then I "submit" and results are populated into (what looks to be the same window). The source for that window is below.

Code: Select all
<html>
<head>
   <LINK REL="stylesheet" type="text/css" href="../css/PracticeManagement.css" />      
   <script type="text/javascript" src="../includes/javascripts/tableSortOnHeader.js"></script>   
   <script language="JavaScript" src="../includes/javascripts/PracticeCommon.js"></script>
   <script language="JavaScript1.2">
   function searchAgain()
   {
      window.location.href="RenterSearchIframe.wrs?action=parent.selectRenter(&createFlag=0";      
   }
      
   function frmSubmit()
   {
      f=window.document.form1;
      if(f.fname.value.length==0 && f.lname.value.length==0 && f.rid.value.length==0 )
      {
         alert("Please enter first name or last name or rid as search criteria.");
      }
      else
      {
         f.submit();
      }
   }
   
   function selectDoc(id,upin,rid,lname,mname,fname)
   {
      lname=lname.replace(/'/g, '\\\'');
      mname=mname.replace(/'/g, '\\\'');
      fname=fname.replace(/'/g, '\\\'');
         eval("parent.selectRenter("+id+", '"+upin+"', '"+rid+"', '"+lname+"', '"+mname+"', '"+fname+"')");
         
      //hideDocSearch();         
   }
   
   /*function hideDocSearch()
   {
      top.searchLayer.hideLayer();   
   }*/
   
   function reSize()
   {
      var x=document.body.scrollHeight;
      if (x<=310)
      {
         height=x;
         width=340;
      }   
      else
      {
         height=310;   
         width=357;
      }   
   
      if (parent.document.getElementById("searchIframe"))
         parent.document.getElementById("searchIframe").style.height=height;
      if (parent.document.getElementById("hiddenIframe"))
         parent.document.getElementById("hiddenIframe").style.height=height;
      if (parent.searchLayer)
         parent.searchLayer.reSizeLayer();
   }
      
   </script>
</head>


<body onLoad="reSize();" style="overflow-x: hidden;">
         
   <div style="width:100%; height:auto; margin-top:4px;font:12px Arial,Helvetica,sans-serif;padding:0 0 20 0; text-align:left; background-color: #FFFFFF;">
       The following is  the first 50 renters that matched your search criteria. <BR>       
         <table class="table" onClick="sortColumn(event)" style="font-size:12px; ">
            <thead class="tableHeader">
               <th width="180">Name</th>
               <th width="100">City</th>
               <th width="40">State</th>
               <th width="70">UPIN</th>
               <th width="70">RID</th>
            </thead>
                        <tr class="tableRow"  onMouseOver="swapClass(this, 'tableRowMouseOver')" onMouseOut="swapClass(this, 'tableRow')">
                  <td class="tableCell clickableText" style="text-decoration:underline;" onClick="selectDoc('132487','','939282717','DOE','W','JANE');">DOE, JANE W</td>
                  <td align="left" style="padding-left:5px;">Oiuler</td>
                  <td>AL</td>
                  <td></td>
                  <td>939282717</td>
               </tr>
                        <tr class="tableRow"  onMouseOver="swapClass(this, 'tableRowMouseOver')" onMouseOut="swapClass(this, 'tableRow')">
                  <td class="tableCell clickableText" style="text-decoration:underline;" onClick="selectDoc('8561458','','464131797','DOE','E','JOHN');">DOE, JOHN E</td>
                  <td align="left" style="padding-left:5px;">Heathcliff</td>
                  <td>NJ</td>
                  <td></td>
                  <td>464131797</td>
               </tr>
                        <tr class="tableRow"  onMouseOver="swapClass(this, 'tableRowMouseOver')" onMouseOut="swapClass(this, 'tableRow')">
                  <td class="tableCell clickableText" style="text-decoration:underline;" onClick="selectDoc('5214783','','131464797','DOE','B','PAUL');">DOE, PAUL B</td>
                  <td align="left" style="padding-left:5px;">Arrower</td>
                  <td>KY</td>
                  <td></td>
                  <td>131464797</td>
               </tr>
                        <tr class="tableRow"  onMouseOver="swapClass(this, 'tableRowMouseOver')" onMouseOut="swapClass(this, 'tableRow')">
                  <td class="tableCell clickableText" style="text-decoration:underline;" onClick="selectDoc('1957554','A12345','797464131','DOE','D','JASMIN');">DOE, JASMIN D</td>
                  <td align="left" style="padding-left:5px;">Goshen</td>
                  <td>AZ</td>
                  <td>A12345</td>
                  <td>797464131</td>
               </tr>
                        
                  </table>
<div  style="margin-top: 20px; text-align:center; ">      
         <div style="margin-top:20px; width:350; text-align:center;" ><input type="button" value="Search Again"  onClick="updateCursorToWaitStatus(this);searchAgain();"></div>
</body>
</html>



That is source for the window which displays the search results.


I want to get all the information on the renters in the database. I believe that there is an ID number associated with them. Like i said about "hidden" information at the beginning of this post, the information that i am interested in does not show in either source or on the results page, it is only shown once the hyperlink result is selected and at that point it is populated into the fields on the "form" page.

What would be the best way to go about mining/extracting/scraping this info.

thanks!
Last edited by micseydel on Tue Apr 22, 2014 7:59 pm, edited 1 time in total.
Reason: First post lock.
xopenex
 
Posts: 1
Joined: Tue Apr 22, 2014 6:48 pm

Re: web scrape simulate onclick

Postby stranac » Tue Apr 22, 2014 8:12 pm

Either figure out what requests are being made and simulate those, or use something that can execute javascript.
Friendship is magic!

R.I.P. Tracy M. You will be missed.
User avatar
stranac
 
Posts: 1111
Joined: Thu Feb 07, 2013 3:42 pm


Return to General Coding Help

Who is online

Users browsing this forum: No registered users and 4 guests