自动发送和接收HTML页面数据

3 投票
2 回答
587 浏览
提问于 2025-04-16 13:50

我不太确定应该用哪个模块来处理这个问题。 我有超过100个文件需要提交到以下网页,并获取结果。

http://bip.weizmann.ac.il/oca-bin/lpccsu

如果我能以某种方式自动化这个过程,把文件发送到

'<'input type="file" name="filename"  size='30''>'

标签,然后接收返回的HTML,这样我就可以用正则表达式来处理它,那就太好了。

谢谢

编辑一下,看看示例输出,选择CSU单选按钮,然后在'PDB entry'文本框中输入1eo8

2 个回答

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

希望这些对你有帮助

2

@Anake 这里有三个适合Python的工具包,可以帮助你获取和解析数据:

从它们的网站上来看:

Beautiful Soup 是一个可以解析你给它的任何内容的工具,它会为你处理树形结构的遍历。你可以告诉它“找出所有的链接”,或者“找出所有类名为 externalLink 的链接”,又或者“找出所有网址包含 'foo.com' 的链接”,甚至“找出表头中有粗体字的文本,然后给我这个文本。” 1

这是一个在Python中进行状态化编程的网页浏览工具,灵感来自于Andy Lester的Perl模块 2

Scrapy 是一个快速的高级网页抓取和爬虫框架,用于爬取网站并从页面中提取结构化数据。它可以用于很多目的,从数据挖掘到监控和自动化测试。 3

撰写回答