#Appraiser Data scraper example.
#Written by Steve Atchisn 3/22/2013
import urllib2
import arcpy
mxd = arcpy.mapping.MapDocument('CURRENT')
df = arcpy.mapping.ListDataFrames(mxd)[0]

def getsalesdate():
    #get parcel number
    parnum1=(the_page[int(startchar+5):int(startchar)+21])
    print(parnum1)

    #Actual sale price
    saleprice=(the_page[int(startchar+88):int(startchar)+99])
    print('Actual sales price = %s') % saleprice                   

    #get sale date 
    saledate=(the_page[int(startchar+63):int(startchar)+67])
    print('Sale date = %s') % saledate

    print('-------------------------------------------------')

   
for row in arcpy.SearchCursor("Owners"):
    parnum = row.getValue('PIN')

    req = urllib2.Request('http://www.snco.us/ap/R_prop/Comp.asp?PRCL_ID='+str(parnum)+'&PRCL_CD=01&YEAR=2013')
    response = urllib2.urlopen(req)
    the_page = response.read()

    startchar = the_page.find('PID1=')
    parnum1 =(the_page[int(startchar+5):int(startchar)+21])
    getsalesdate()
  
    startchar = the_page.find('PID2=')
    parnum2 =(the_page[int(startchar+5):int(startchar)+21])
    getsalesdate()

    startchar = the_page.find('PID3=')
    parnum3=(the_page[int(startchar+5):int(startchar)+21])
    getsalesdate()

    startchar = the_page.find('PID4=')
    parnum4=(the_page[int(startchar+5):int(startchar)+21])
    getsalesdate()

    startchar = the_page.find('PID5=')
    parnum5=(the_page[int(startchar+5):int(startchar)+21])
    getsalesdate()

arcpy.SelectLayerByAttribute_management("Owners","NEW_SELECTION","PIN="+parnum1)
arcpy.SelectLayerByAttribute_management("Owners","ADD_TO_SELECTION","PIN="+parnum2)

arcpy.SelectLayerByAttribute_management("Owners","ADD_TO_SELECTION","PIN="+parnum3)

arcpy.SelectLayerByAttribute_management("Owners","ADD_TO_SELECTION","PIN="+parnum4)

arcpy.SelectLayerByAttribute_management("Owners","ADD_TO_SELECTION","PIN="+parnum5)

df.zoomToSelectedFeatures()

#Select a parcel from the Owner feature class before running this code!!