自动发送和接收HTML页面数据
我不太确定应该用哪个模块来处理这个问题。 我有超过100个文件需要提交到以下网页,并获取结果。
http://bip.weizmann.ac.il/oca-bin/lpccsu
如果我能以某种方式自动化这个过程,把文件发送到
'<'input type="file" name="filename" size='30''>'
标签,然后接收返回的HTML,这样我就可以用正则表达式来处理它,那就太好了。
谢谢
编辑一下,看看示例输出,选择CSU单选按钮,然后在'PDB entry'文本框中输入1eo8
2 个回答
有几种方法可以做到这一点:
1) 使用Perl和LWP
use LWP::UserAgent;
my $ua = new LWP::UserAgent;
my $response
= $ua->post('http://bip.weizmann.ac.il/oca-bin/lpccsu?9955',
{ param1 => 'value1',
param2 => 'value2',
});
my $content = $response->content;
// your regular expression code
2) 使用Autohotkey,这个工具支持正则表达式,还有一个用户写的库可以处理POST请求,详情请见 http://www.autohotkey.com/forum/topic33506.html
3) 写一个批处理文件,使用wget的--post-data和--post-file选项,把数据传给一系列文件,然后用你喜欢的脚本语言读取输出。参考资料: http://www.gnu.org/software/wget/manual/html_node/HTTP-Options.html
希望这些对你有帮助
@Anake 这里有三个适合Python的工具包,可以帮助你获取和解析数据:
从它们的网站上来看:
Beautiful Soup 是一个可以解析你给它的任何内容的工具,它会为你处理树形结构的遍历。你可以告诉它“找出所有的链接”,或者“找出所有类名为 externalLink 的链接”,又或者“找出所有网址包含 'foo.com' 的链接”,甚至“找出表头中有粗体字的文本,然后给我这个文本。” 1
这是一个在Python中进行状态化编程的网页浏览工具,灵感来自于Andy Lester的Perl模块 2
Scrapy 是一个快速的高级网页抓取和爬虫框架,用于爬取网站并从页面中提取结构化数据。它可以用于很多目的,从数据挖掘到监控和自动化测试。 3