我必须从网站(类似于,比如说,yahoomail.com)自动执行文件下载活动。要到达具有此文件下载链接的页面,我必须登录,从一个页面跳转到另一个页面以提供一些参数,如日期等,最后单击下载链接。
我正在考虑三种方法:
使用WatIN,开发一个windows服务,定期执行一些WatiN代码,遍历页面,下载文件。
使用 AutoIT(没什么想法)
使用简单的 HTML 解析技术(这里有几个问题,例如,登录后如何维护会话?登录后如何注销?
我必须从网站(类似于,比如说,yahoomail.com)自动执行文件下载活动。要到达具有此文件下载链接的页面,我必须登录,从一个页面跳转到另一个页面以提供一些参数,如日期等,最后单击下载链接。
我正在考虑三种方法:
使用WatIN,开发一个windows服务,定期执行一些WatiN代码,遍历页面,下载文件。
使用 AutoIT(没什么想法)
使用简单的 HTML 解析技术(这里有几个问题,例如,登录后如何维护会话?登录后如何注销?
我使用scrapy.org,它是一个 python 库。其实很安静。易于编写蜘蛛,它的功能非常广泛。包中提供了登录后的抓取站点。
这是一个蜘蛛程序的示例,它会在身份验证后爬取站点。
class LoginSpider(BaseSpider):
domain_name = 'example.com'
start_urls = ['http://www.example.com/users/login.php']
def parse(self, response):
return [FormRequest.from_response(response,
formdata={'username': 'john', 'password': 'secret'},
callback=self.after_login)]
def after_login(self, response):
# check login succeed before going on
if "authentication failed" in response.body:
self.log("Login failed", level=log.ERROR)
return
# continue scraping with authenticated session...
我使用mechanize for Python 成功完成了一些事情。它易于使用并支持 HTTP 身份验证、表单处理、cookies、自动 HTTP 重定向(30X)……基本上唯一缺少的是 JavaScript,但如果你需要依赖 JS,无论如何你都被搞砸了。
尝试使用Selenium Remote Control自动化的Selenium脚本。