2012-05-04 7 views
5

Noob totale, ovviamente. Insegnamento di self Python per il web scraping nell'interesse di record aperti/trasparenza governativa/reporting/ecc.Python/web scrap/aspx - è umanamente possibile quando non ci sono forme?

C'è una pagina aspx voglio raschiare, un calendario di settimana in settimana per gennaio - marzo 2012

Ma non ci sono forme ...

Forse brava gente può dirmi se una soluzione è persino possibile prima di passare giorni a litigare con essa.

http://webmail.legis.ga.gov/Calendar/default.aspx?chamber=house

L'unico modo per vedere gli appuntamenti in calendario è scegliendo un giorno su una foto di un calendario. Ma, almeno, se clicchi su Lunedi, mostra tutti gli appuntamenti della settimana. (Vorrei raccogliere tutti quegli appuntamenti per contare la frequenza con cui ogni comitato si riunisce, un po 'un proxy per contare quale tipo di legislazione ottiene attenzione e che tipo viene ignorato.)

Ma allora, quale strategia usare ? Sembra che ogni mese almeno giù nelle sue viscere sia assegnato a un numero sequenziale di quattro cifre preceduto da una "V", come V4414, e giorni con un numero non anteposto.

Sono a caccia solo da gennaio a marzo 2012; altri mesi sono non-germani e per lo più vuoti.

un indizio?

...<a href="javascript:__doPostBack('calMain','V4414')" style="color:#333333" title="Go to the previous month">February</a></td><td align="center" style="width:70%;">March 2012</td><td align="right" valign="bottom" style="color:#333333;font-size:8pt;font-weight:bold;width:15%;"><a href="javascript:__doPostBack('calMain','V4474')" style="color:#333333" title="Go to the next month">April</a></td></tr> 

uno schema?

...<td align="center" style="color:#999999;width:14%;"><a  href="javascript:__doPostBack('calMain','4439')" style="color:#999999" title="February 26">26</a></td><td align="center" style="color:#999999;width:14%;"><a href="javascript:__doPostBack('calMain','4440')" style="color:#999999" title="February 27">27</a></td><td align="center" style="color:#999999;width:14%;"><a href="javascript:__doPostBack('calMain','4441')" style="color:#999999" title="February 28">28</a></td>... 

Saluti e grazie !!

+0

ha un elemento 'form'. –

risposta

2

È possibile replicare la richiesta POST in Python utilizzando qualcosa come urllib.parse.urlencode per creare le stringhe di query.

Per questo è necessario scoprire come appare la stringa di query, ovviamente. In alternativa, è possibile utilizzare un altro strumento come Selenium RC.

5

Il modulo contiene quattro input s con name s di:

  • __EVENTTARGET
  • __EVENTARGUMENT
  • __VIEWSTATE
  • __EVENTVALIDATION

gli ultimi due hanno valori iniziali. Hai bisogno di scriverli. I primi due sono impostati da quei collegamenti. Ad esempio, si dispone di un collegamento:

<a href="javascript:__doPostBack('calMain','4504')" style="color:Black" title="May 01">1</a> 

sguardo al href:

javascript:__doPostBack('calMain','4504') 

In qualche modo, analizzare questi due stringhe fuori di esso. Il primo è __EVENTTARGET. Quest'ultimo è __EVENTARGUMENT.

Una volta ottenuti tutti e quattro i dati, è possibile inviare una richiesta POST per ottenere la pagina successiva.

+0

Grazie a tutti! Pubblicherò un link qui quando il lavoro è finito. So che sarà affascinante, lolz. – greencracker

+0

E 'stato fantastico, grazie! – Lazik

Problemi correlati