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

gre*_*ker 5 python asp.net 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> 
Run Code Online (Sandbox Code Playgroud)

一种模式?

    ...<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>...
Run Code Online (Sandbox Code Playgroud)

干杯谢谢!!

ick*_*fay 5

该表单包含四个inputs name:

  • __EVENTTARGET
  • __EVENTARGUMENT
  • __VIEWSTATE
  • __EVENTVALIDATION

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

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

看看href:

javascript:__doPostBack('calMain','4504')
Run Code Online (Sandbox Code Playgroud)

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

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


Rus*_*ias 2

可以urllib.parse.urlencode使用类似构建查询字符串的方法在 Python 中复制 POST 请求。

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