亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費(fèi)注冊(cè) 查看新帖 |

Chinaunix

  平臺(tái) 論壇 博客 文庫
12下一頁
最近訪問板塊 發(fā)新帖
查看: 6108 | 回復(fù): 14
打印 上一主題 下一主題

利用perl提取google網(wǎng)頁搜索結(jié)果中的內(nèi)容 [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報(bào)告]
發(fā)表于 2012-08-28 10:40 |只看該作者 |倒序?yàn)g覽
本帖最后由 xingzhou823 于 2012-08-28 10:46 編輯


各位,早上好

利用google搜索時(shí),輸入關(guān)鍵詞以后可能會(huì)出現(xiàn)很多結(jié)果,例如 輸入“醫(yī)學(xué) email @ .com” 以后,會(huì)有43000個(gè)結(jié)果,我的目的就是要得到這么多結(jié)果中的郵箱信息。
只要每個(gè)結(jié)果中含有 郵箱格式的內(nèi)容就提取出來。

利用perl來實(shí)現(xiàn)這一過程該怎么弄呢,

我之前只用過利用perl來提取 生物數(shù)據(jù)庫NCBI 的pubmed數(shù)據(jù)庫中的pubmed id,如下所示
  1. #!/usr/bin/perl
  2. use strict;
  3. #use warnings;
  4. die "Usage : perl $0 <KEY.list> <key_word> <count.txt>\n"unless(@ARGV==3);
  5. open(IN,$ARGV[0])or die $!;
  6. my $key_word=$ARGV[1];
  7. open(OUT1,">$ARGV[2]") or die "could not open file!";
  8. open(OUT,">result_abstract.tmp.v2") or die "could not open file!";
  9. #perl **.pl  KEY.list  count.txt
  10. my %has;
  11. my @key;
  12. my %notkey;
  13. while(<IN>){
  14.         chomp (my $tmp=$_);
  15.    my ($key,$notkey,$a2)=split(/\s+/,$tmp);
  16.          $key=[        DISCUZ_CODE_0        ] if($key=~/\w+.*\w+/);
  17.         $notkey=[        DISCUZ_CODE_0        ] if($notkey=~/\w+.*\w+/);
  18.         $has{$key}=$tmp;
  19.         $notkey{$key}=$notkey;
  20.         push @key,$key;
  21. }





  22. sub ask_user {
  23.   print "$_[0] [$_[1]]: ";
  24.   my $rc = <>;
  25.   chomp $rc;
  26.   if($rc eq "") { $rc = $_[1]; }
  27.   return $rc;
  28. }

  29. # ---------------------------------------------------------------------------
  30. # Define library for the 'get' function used in the next section.
  31. # $utils contains route for the utilities.
  32. # $db, $query, and $report may be supplied by the user when prompted;
  33. # if not answered, default values, will be assigned as shown below.

  34. use LWP::Simple;

  35. my $utils = "http://www.ncbi.nlm.nih.gov/entrez/eutils";
  36. my $num;
  37. # ---------------------------------------------------------------------------
  38. # $esearch cont羒ns the PATH & parameters for the ESearch call
  39. # $esearch_result containts the result of the ESearch call
  40. # the results are displayed 羘d parsed into variables
  41. # $Count, $QueryKey, and $WebEnv for later use and then displayed.
  42. foreach my $key (@key){
  43. my        $db="Pubmed";
  44. my $report="abstract";
  45. my $query ="($key NOT $notkey{$key})AND $key_word";
  46. my $esearch = "$utils/esearch.fcgi?" .
  47.               "db=$db&retmax=1&usehistory=y&term=";
  48. $num++;
  49.         #print "$key\t$num\n";
  50.         print "$query\t$num\n";
  51. my $esearch_result = get($esearch . $query);

  52. $esearch_result =~
  53.   m|<Count>(\d+)</Count>.*<QueryKey>(\d+)</QueryKey>.*<WebEnv>(\S+)</WebEnv>|s;

  54. my $Count    = $1;
  55. my $QueryKey = $2;
  56. my $WebEnv   = $3;
  57. $has{$key}=[        DISCUZ_CODE_0        ] if($has{$key}=~/\w+.*\w+/);
  58. print OUT1 "$has{$key}\tQuery \: $query \tpubmed_count\t$Count\n";
  59. # ---------------------------------------------------------------------------
  60. # this area defines a loop which will display $retmax citation results from
  61. # Efetch each time the the Enter Key is pressed, after a prompt.

  62. my $retstart;
  63. my $retmax=$Count;

  64. for($retstart = 0; $retstart < $retmax; $retstart += $retmax) {
  65.   my $efetch = "$utils/efetch.fcgi?" .
  66.                "rettype=$report&retmode=text&retstart=$retstart&retmax=$retmax&" .
  67.                "db=$db&query_key=$QueryKey&WebEnv=$WebEnv";
  68.        

  69.   my $efetch_result = get($efetch);
  70.   
  71.   print OUT "---------\nQuery\: $key\t$Count\t$query\nEFETCH RESULT(".
  72.          ($retstart + 1) . ".." . ($retstart + $retmax) . "): ".
  73.         "[$efetch_result]\n-----PRESS ENTER!!!-------\n";
  74.   ;
  75. }
  76. }
  77. close OUT;
復(fù)制代碼
應(yīng)用到google上面就不一樣了

該怎么寫呢?

論壇徽章:
42
19周年集字徽章-周
日期:2019-10-14 14:35:31平安夜徽章
日期:2015-12-26 00:06:30數(shù)據(jù)庫技術(shù)版塊每日發(fā)帖之星
日期:2015-12-01 06:20:002015亞冠之首爾
日期:2015-11-04 22:25:43IT運(yùn)維版塊每日發(fā)帖之星
日期:2015-08-17 06:20:00寅虎
日期:2014-06-04 16:25:27獅子座
日期:2014-05-12 11:00:00辰龍
日期:2013-12-20 17:07:19射手座
日期:2013-10-24 21:01:23CU十二周年紀(jì)念徽章
日期:2013-10-24 15:41:34IT運(yùn)維版塊每日發(fā)帖之星
日期:2016-01-27 06:20:0015-16賽季CBA聯(lián)賽之新疆
日期:2016-06-07 14:10:01
2 [報(bào)告]
發(fā)表于 2012-08-28 10:58 |只看該作者
用lwp或者curl先把網(wǎng)頁抓下來
然后就很簡單吧
用關(guān)鍵字/正則匹配含@的字符串就可以了
注意一下前后的分界就行了吧

論壇徽章:
0
3 [報(bào)告]
發(fā)表于 2012-08-28 11:35 |只看該作者
能具體點(diǎn)嗎,還是不會(huì)改回復(fù) 2# laputa73


   

論壇徽章:
42
19周年集字徽章-周
日期:2019-10-14 14:35:31平安夜徽章
日期:2015-12-26 00:06:30數(shù)據(jù)庫技術(shù)版塊每日發(fā)帖之星
日期:2015-12-01 06:20:002015亞冠之首爾
日期:2015-11-04 22:25:43IT運(yùn)維版塊每日發(fā)帖之星
日期:2015-08-17 06:20:00寅虎
日期:2014-06-04 16:25:27獅子座
日期:2014-05-12 11:00:00辰龍
日期:2013-12-20 17:07:19射手座
日期:2013-10-24 21:01:23CU十二周年紀(jì)念徽章
日期:2013-10-24 15:41:34IT運(yùn)維版塊每日發(fā)帖之星
日期:2016-01-27 06:20:0015-16賽季CBA聯(lián)賽之新疆
日期:2016-06-07 14:10:01
4 [報(bào)告]
發(fā)表于 2012-08-28 13:23 |只看該作者
你可以先cpan一下lwp的例子看看啊
試試看有什么地方不明白的再問
  1. my $url = 'http://freshair.npr.org/dayFA.cfm?todayDate=current';
  2.     # Just an example: the URL for the most recent /Fresh Air/ show

  3.   use LWP::Simple;
  4.   my $content = get $url;
  5.   die "Couldn't get $url" unless defined $content;

  6.   # Then go do things with $content, like this:

  7.   if($content =~ m/jazz/i) {
  8.     print "They're talking about jazz today on Fresh Air!\n";
  9.   } else {
  10.     print "Fresh Air is apparently jazzless today.\n";
  11.   }
復(fù)制代碼

論壇徽章:
0
5 [報(bào)告]
發(fā)表于 2012-08-28 15:06 |只看該作者
這個(gè)需求的難點(diǎn)  應(yīng)該是你反復(fù)請(qǐng)求google時(shí)   ip被重置 的 應(yīng)對(duì)策略 ~

論壇徽章:
42
19周年集字徽章-周
日期:2019-10-14 14:35:31平安夜徽章
日期:2015-12-26 00:06:30數(shù)據(jù)庫技術(shù)版塊每日發(fā)帖之星
日期:2015-12-01 06:20:002015亞冠之首爾
日期:2015-11-04 22:25:43IT運(yùn)維版塊每日發(fā)帖之星
日期:2015-08-17 06:20:00寅虎
日期:2014-06-04 16:25:27獅子座
日期:2014-05-12 11:00:00辰龍
日期:2013-12-20 17:07:19射手座
日期:2013-10-24 21:01:23CU十二周年紀(jì)念徽章
日期:2013-10-24 15:41:34IT運(yùn)維版塊每日發(fā)帖之星
日期:2016-01-27 06:20:0015-16賽季CBA聯(lián)賽之新疆
日期:2016-06-07 14:10:01
6 [報(bào)告]
發(fā)表于 2012-08-28 15:30 |只看該作者
那就百度或者360咯
google已經(jīng)悲劇了

論壇徽章:
2
CU大;照
日期:2013-04-17 11:46:28CU大;照
日期:2013-04-17 11:46:39
7 [報(bào)告]
發(fā)表于 2012-08-28 15:39 |只看該作者
先占個(gè)位置,坐等答案出現(xiàn)

論壇徽章:
42
19周年集字徽章-周
日期:2019-10-14 14:35:31平安夜徽章
日期:2015-12-26 00:06:30數(shù)據(jù)庫技術(shù)版塊每日發(fā)帖之星
日期:2015-12-01 06:20:002015亞冠之首爾
日期:2015-11-04 22:25:43IT運(yùn)維版塊每日發(fā)帖之星
日期:2015-08-17 06:20:00寅虎
日期:2014-06-04 16:25:27獅子座
日期:2014-05-12 11:00:00辰龍
日期:2013-12-20 17:07:19射手座
日期:2013-10-24 21:01:23CU十二周年紀(jì)念徽章
日期:2013-10-24 15:41:34IT運(yùn)維版塊每日發(fā)帖之星
日期:2016-01-27 06:20:0015-16賽季CBA聯(lián)賽之新疆
日期:2016-06-07 14:10:01
8 [報(bào)告]
發(fā)表于 2012-08-28 17:30 |只看該作者
LZ的意思大概是不知道怎么翻頁遍歷結(jié)果?
這個(gè)在下面的頁碼上有每一頁的連接,可以用程序拼接
循環(huán)取直到最后一頁
和你那個(gè)生物網(wǎng)頁的fcgi翻頁原理其實(shí)也差不多。
我用google搜索了一下“醫(yī)學(xué) email @ .com”
搜索獲得約 206,000,000 條結(jié)果,以下是第 23 頁 (用時(shí) 0.24 秒) 。。。
頁數(shù)好多。。。

論壇徽章:
1
2015年辭舊歲徽章
日期:2015-03-03 16:54:15
9 [報(bào)告]
發(fā)表于 2012-08-29 08:22 |只看該作者
有這樣需求的多半是要做壞事。

做壞事就要有做壞事的本事,得有基本的技術(shù)能力和鉆研精神。就這么個(gè)問題都解決不了,趁早放棄。

LZ做這件事,后面可能出現(xiàn)的問題還多著呢。想做成你就必須能自己解決這些問題。

論壇徽章:
0
10 [報(bào)告]
發(fā)表于 2012-08-31 15:26 |只看該作者
這個(gè)例子我是能看明白的,可是google搜索中我直接引用網(wǎng)頁
my $ulr = "http://scholar.google.com.hk/scholar?start=0&q=%E5%8C%BB%E5%AD%A6+email+%40+.com&hl=zh-CN&as_sdt=1,5&as_vis=1"
是得不到結(jié)果的,并且沒有自動(dòng)翻頁的功能。

回復(fù) 4# laputa73


   
您需要登錄后才可以回帖 登錄 | 注冊(cè)

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號(hào)-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號(hào):11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報(bào)專區(qū)
中國互聯(lián)網(wǎng)協(xié)會(huì)會(huì)員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請(qǐng)注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP