Python / web scrape / aspx - 没有表格时人性化吗?

时间:2012-05-04 03:09:04

标签: asp.net python scrape

显然,总的菜鸟。为开放记录/政府透明度/报告/等利益教授用于网络抓取的自我Python。

我想抓一个.aspx页面,2012年1月 - 3月的逐周日历

但它没有形式......

也许你很好,人们可以告诉我,在我花费数天与它斗争之前,是否有可能找到解决方案。

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

在日历上查看约会的唯一方法是在日历的图片上选择一天。但是,至少,如果你点击星期一,它会显示所有一周的约会。 (我想收集所有这些约会,以便计算每个委员会会议的频率,以及计算什么样的立法受到关注以及忽略哪种立法的代理。)

但是,使用什么策略?似乎每个月至少在其肠道内下降被指定为前缀为“V”的连续四位数字,如V4414,以及具有非前置数字的天数。

我只在2012年1月至3月期间狩猎;其他月份是非密切关系,大多是空的。

一个线索?

    ...<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> 

模式?

    ...<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>...

干杯谢谢!!

2 个答案:

答案 0 :(得分:5)

该表单包含四个input s name s:

  • __EVENTTARGET
  • __EVENTARGUMENT
  • __VIEWSTATE
  • __EVENTVALIDATION

后两者具有初始值。你需要刮掉那些。前两者是由这些链接设置的。例如,您有一个链接:

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

查看href

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

不知何故,从中解析出这两个字符串。前者是__EVENTTARGET。后者是__EVENTARGUMENT

获得所有四个数据后,您可以发出POST请求以获取下一页。

答案 1 :(得分:2)

可以使用urllib.parse.urlencode等内容在Python中复制POST请求来构建查询字符串。

为此,您必须找出查询字符串的外观,显然。或者,您可以使用其他工具,例如Selenium RC