免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 4075 | 回复: 3
打印 上一主题 下一主题

如何通过perl获取网页信息 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-08-25 04:26 |只看该作者 |倒序浏览
大家好我是做bioinformatics的,我最近的工作需要从一个数据库里下载信息,但是这个数据库只提供免费搜索功能,不提供下载,所以我想把网页信息都下载下来自己进行处理.因为以前工作的关系,perl的字符处理部分我比较熟悉,但是页面操作就完全没有接触过了,希望大家给我些帮助。

我想做的大概是这样的
1.进入http://www.gene-regulation.com/c ... transfac/search.cgi
2.输入Account:ChinaUnix,密码:123456,然后点 “Matrix”
3.在Search term栏填 "m";Table field to search in栏选择“Accession Number(AC)”; Number of hits per page选"100";最后点 "submit"
4.search结果里面的第二列(M00001,M00002...)就是我感兴趣的项目了,我希望可以写一个程序自动按顺序进入第二列的每一项,并纪录下里面页面的信息(一共4页,398项),然后输出

不好意思可能有些麻烦,也不知道perl可不可以实现,如果很复杂指导我一个思路也可以,谢谢了

论坛徽章:
0
2 [报告]
发表于 2010-08-25 06:54 |只看该作者
这是Perl的强项之一,用LWP即可以实现,看LWP的文档。

论坛徽章:
0
3 [报告]
发表于 2010-08-25 22:31 |只看该作者
弄了个简陋的,那个网站的登录认证提交加密了,自动登录没弄成,直接手工登录后,把cookie文件的信息附加到perl里面了。
用的时候先登录网站,不要关闭浏览器。然后运行代码就可以了。就是速度有点慢。
  1. use LWP::UserAgent;
  2. use LWP::ConnCache;
  3. #use HTTP::Cookies;

  4. $bro=LWP::UserAgent->new;
  5. $cache=LWP::ConnCache->new;
  6. #see the cookie file to change the ip address
  7. $ip="210.31.199.135";

  8. #$cookie=HTTP::Cookies->new(file=>'cookie.txt',autosave=>1);
  9. $bro->conn_cache($cache);
  10. $bro->cookie_jar($cookie);
  11. $url="http://www.gene-regulation.com/cgi-bin/pub/databases/transfac/getTF.cgi?AC=";
  12. #$bro->post("$login",["user"=>"chinaunix"],["password"=>"123456"]);

  13. for($i=1;$i<399;$i++){
  14.   $page=sprintf("%03d",$i);
  15.   $full_url=$url."M00".$page;

  16. $res=$bro->get($full_url,'cookie'=>"Ticket=hash&a01d53e7f09e71bd2a7e0dd8af166632&time&1282744299&ip&$ip&user&chinaunix&expires&10");

  17. if($res->is_success){
  18.   open($page,">","M00".$page.".html");
  19.   print $page $res->content;
  20.   close $page;
  21. print "downloading"."M00".$page."\n";
  22. }
  23. else{
  24. print "can't get page"
  25. }
复制代码

论坛徽章:
0
4 [报告]
发表于 2010-08-26 00:35 |只看该作者
回复 3# heut2009


    非常好用呀!真是太感谢了!我也要学习一下
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP