我想抓一个.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>...
干杯谢谢!!
答案 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。