1

我对 perl 模块非常www::mechanize陌生,我想功能化 snp id。为此,我必须制作一个网络爬虫,但我遇到了困难。我不知道如何使用字段名称或如何分配值。我必须访问这个网站:http: //www.ncbi.nlm.nih.gov/projects/SNP/。请告诉这里的字段名是什么。提前致谢。我的意思是在这里指定一个字段名称,我必须将 snp id 用于搜索。我不明白该怎么做。请任何人帮助。

   use WWW::Mechanize;
   use strict;
   use warnings;
   my $mech = WWW::Mechanize->new;

   my $snp = 'rs111';
   my $URL = "http://www.ncbi.nlm.nih.gov/projects/SNP/";

   $mech->get($URL);

   $mech->submit_form(
   form_number => '1',
   fields => {

   'ID' => $snp,
    },
    );
    print $mech->content();
4

3 回答 3

5

使用诸如Firefox 的 Web Developer 插件之类的工具。

该页面具有三种形式。

  1. Id       Name     Method   Action
    ------   ------   ------   --------------------------------------------------
    Search   Search   post     http://www.ncbi.nlm.nih.gov/coreutils/dispatch.cgi
    
    Elements
    ========
    Id       Name     Type     Value      Label   Size   Maximum   Length
    ------   ------   ------   --------   -----   ----   -------   ------
    Search   db       select   13
    term     term     text                for     24
    Search   submit   submit   Go
    Search   SITE     hidden   NcbiHome
    
  2. Id   Name    Method   Action
    --   -----   ------   --------------------------------------------------
         frmGo   get      http://www.ncbi.nlm.nih.gov/entrez/query.fcgi
    
    Elements
    ========
    Id   Name       Type     Value     Label   Size   Maximum   Length
    --   --------   ------   -------   -----   ----   -------   ------
         db         hidden   Books
         cmd        hidden   Search
         term       input                      12
         Submit     submit   Go
         doptcmdl   hidden   TOCView
    
  3. Id   Name       Method   Action
    --   --------   ------   --------------------------------------------------
         searchID   post     getID.cgi
    
    Elements
    ========
    Id       Name         Type     Value          Label   Size   Maximum   Length
    ------   ----------   ------   ------------   -----   ----   -------   ------
             searchType   hidden   adhoc_search
    sub_id   sub_id       input                   ID:
    IDtype   Type         select   dbSNP_rs
             submit2      submit   Search
             reset        reset    Reset
    
于 2013-04-19T16:11:15.007 回答
0

Try this version (your form is named Search and field name you need is db):

$mech->submit_form(
    name => "Search",
    fields => {
        db => $snp,
    },
    button => "submit",
);
于 2013-04-21T16:07:20.883 回答
0

每个网络浏览器都有开发人员工具: Opera 的Dragonfly(它是内置的,我大部分时间都使用它), Firefox 的Firebug等。我需要的大多数此类工具都需要右键单击所需的元素查看并选择“使用...检查元素”之类的内容在此处输入图像描述

在此处输入图像描述

于 2013-04-20T02:15:27.023 回答