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

  免費注冊 查看新帖 |

Chinaunix

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

抓取淘寶產(chǎn)品簡介頁面時遇到的問題,求解!謝謝! [復制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報告]
發(fā)表于 2010-11-19 12:49 |只看該作者 |倒序瀏覽
本帖最后由 sx98083714 于 2010-11-19 13:21 編輯
  1. #!/usr/bin/perl

  2. use strict;
  3. use URI;
  4. use Web::Scraper;
  5. use utf8;
  6. use LWP;
  7. use Encode;
  8. use HTML::TokeParser;
  9. use HTTP::Cookies;

  10. #將輸出自動解碼為utf8格式
  11. binmode(STDOUT,":encoding(utf8)");

  12. #抓取url
  13. my $url = "http://meilibody.taobao.com/?search=y";

  14. #定義抓取產(chǎn)品列表表達式
  15. my $scraper = scraper{
  16.     process ".permalink","links[]" => { "url" => '@href',"txt" => 'TEXT' };
  17. };

  18. my $result = $scraper -> scrape (URI -> new($url) );

  19. #抓取產(chǎn)品url、標題
  20. for my $row ( @{ $result -> { links } } ){
  21.    
  22.     my $purl = $row -> { "url" };
  23.     my $ptxt = $row -> { "txt" };
  24.    
  25.     #調(diào)用函數(shù)抓取產(chǎn)品詳細內(nèi)容
  26.     my $pcontent = &getcontent($purl);
  27.    
  28.     print "content:",$pcontent,"\n";
  29.     sleep 10;
  30.    
  31. }

  32. #獲取單個產(chǎn)品詳細資料
  33. sub getcontent() {
  34.    
  35.     #抓取產(chǎn)品url
  36.     my $url = shift;
  37.    
  38.     my $browser = LWP::UserAgent -> new;
  39.     $browser -> cookie_jar ( { } );
  40.     $browser -> timeout ( 500 );
  41.    
  42.     my $response = $browser -> get ($url,
  43.                                     'User-Agent' => 'Mozilla/5.0 (X11; U; Linux i686; zh-CN; rv:1.9.0.12) Gecko/2009072711 CentOS/3.0.12-1.el5.centos Firefox/3.0.12',
  44.                                     'Accept' => 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
  45.                                     'Accept-Language' => 'zh-cn,zh;q=0.5',
  46.                                     'Accept-Charset' => 'gb2312,utf-8;q=0.7,*;q=0.7',
  47.                                     'Referer' => 'http://meilibody.taobao.com/?search=y',
  48.                                     );
  49.     #獲取單個產(chǎn)品網(wǎng)頁內(nèi)容
  50.     my $content = $response -> content;
  51.     #網(wǎng)頁內(nèi)容為utf8編碼
  52.     $content = decode ( 'gbk' , $content);
  53.    
  54.     my $stream = HTML::TokeParser -> new (\$content);
  55.    
  56.     #1表示找到內(nèi)容簡介的起始處
  57.     my $find = 0;
  58.     #產(chǎn)品簡介html代碼
  59.     my $pcontent = "";
  60.    
  61.     while ( my $token = $stream -> get_token ){
  62.         
  63.         #產(chǎn)品簡介部分結(jié)束,將標記歸0,跳出循環(huán)
  64.         if ( $find == 1 and $token -> [0] eq 'S' and $token -> [1] eq 'script') {
  65.             $find = 0;
  66.             last;
  67.         }
  68.         
  69.         if ( $find == 0 and $token -> [0] eq 'S' and $token -> [1] eq 'div' and $token -> [2] -> {class} eq "content" ){
  70.             #找到產(chǎn)品簡介起始,將標記置為1
  71.             $find = 1;
  72.             $pcontent .= $token -> [4];
  73.         }elsif ( $find == 1  and $token -> [0] eq 'S' ){
  74.             $pcontent .= $token -> [4];
  75.         }elsif ( $find == 1 and $token -> [0] eq 'E'){
  76.             $pcontent .= $token -> [2];
  77.         }elsif ( $find == 1 and $token -> [0] eq 'T'){
  78.             $pcontent .= $token -> [1];
  79.         }elsif ( $find == 1 and $token -> [0] eq 'C'){
  80.             $pcontent .= $token -> [1];
  81.         }elsif ( $find == 1 and $token -> [0] eq 'D'){
  82.             $pcontent .= $token -> [1];
  83.         }
  84.     }
  85.    
  86.     return $pcontent;
  87.    
  88. }
復制代碼
匹配應該是沒有問題,但是抓取到的產(chǎn)器簡介是“描述加載中....",看了似乎產(chǎn)品簡介是通過js來得到的,過往神仙如何解決這一問題?謝謝!

論壇徽章:
0
2 [報告]
發(fā)表于 2010-11-19 12:58 |只看該作者
自已先頂下!

論壇徽章:
0
3 [報告]
發(fā)表于 2010-11-19 13:16 |只看該作者
如果我的實現(xiàn)方法有問題,希望有高手能提供更好的方法,謝謝先!

論壇徽章:
0
4 [報告]
發(fā)表于 2010-11-19 13:36 |只看該作者
人家是后臺ajax調(diào)用獲取的,真實的url不是你看到的那個

論壇徽章:
0
5 [報告]
發(fā)表于 2010-11-19 13:41 |只看該作者
回復 4# Pro_sky
可有解?

論壇徽章:
0
6 [報告]
發(fā)表于 2010-11-19 14:18 |只看該作者

論壇徽章:
0
7 [報告]
發(fā)表于 2010-11-19 14:29 |只看該作者
不信頂不來大牛支招。怪了,看到好多windows下的淘寶店鋪克隆工具,別人是如何整的?

論壇徽章:
0
8 [報告]
發(fā)表于 2010-11-19 16:09 |只看該作者
嘿嘿,找到辦法了。試踐中。

論壇徽章:
0
9 [報告]
發(fā)表于 2010-11-20 11:12 |只看該作者
淘寶在頁面的寶貝詳情、評價詳情、成交記錄等處是使用Ajax來獲取數(shù)據(jù),并未將數(shù)據(jù)直接嵌入在主頁面中。

看了一下HTML源碼,它是將數(shù)據(jù)作為JS的一個變量嵌入到JS中,該JS隨主頁面下載到本地瀏覽器的緩存中,在需要嵌入該數(shù)據(jù)的地方通過JS事件調(diào)用,如鼠標點擊等。在數(shù)據(jù)嵌入處都有相關(guān)JS代碼,難度也不大,分析一下,順藤摸瓜就能獲得想要的原始數(shù)據(jù)。

樓主在現(xiàn)有代碼基礎上稍加改動即可實現(xiàn)。

論壇徽章:
0
10 [報告]
發(fā)表于 2010-11-21 00:59 |只看該作者
頂一下,也需要這個,有結(jié)果希望能分享~
您需要登錄后才可以回帖 登錄 | 注冊

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

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP