当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 44 篇帖子 ]  前往页数 上一页  1, 2, 3
作者 内容
31 楼 
 文章标题 : Re: [四星]写一个脚本,自动找到相关图书和价格
帖子发表于 : 2009-11-02 12:12 
头像

注册: 2009-01-23 19:28
帖子: 296
送出感谢: 0 次
接收感谢: 0 次
我错了,我不该进来的,进来都看不懂。。。


页首
 用户资料  
 
32 楼 
 文章标题 : Re: [四星]写一个脚本,自动找到相关图书和价格
帖子发表于 : 2009-11-03 10:57 
头像

注册: 2008-05-31 13:28
帖子: 19
送出感谢: 0 次
接收感谢: 0 次
mark


页首
 用户资料  
 
33 楼 
 文章标题 : Re: [四星]写一个脚本,自动找到相关图书和价格
帖子发表于 : 2009-11-19 0:42 

注册: 2008-01-12 0:09
帖子: 18
送出感谢: 0 次
接收感谢: 0 次
markmark :em11


页首
 用户资料  
 
34 楼 
 文章标题 : Re: [四星]写一个脚本,自动找到相关图书和价格
帖子发表于 : 2009-11-21 20:20 
头像

注册: 2009-07-20 14:06
帖子: 189
地址: YKBJ
送出感谢: 1
接收感谢: 0 次
纯支持!看不懂。 :em02


_________________
有些事物是Del不掉的,比如感情,比如某个人,比如某些人。。。


页首
 用户资料  
 
35 楼 
 文章标题 : Re: [四星]写一个脚本,自动找到相关图书和价格
帖子发表于 : 2009-11-25 13:48 

注册: 2009-05-25 23:18
帖子: 7
送出感谢: 0 次
接收感谢: 0 次
keky 写道:
呵呵,很久没来了,发现还有这个任务蛮有意思的,正好复习一下perl,下面是我的代码,大家轻拍噢,只实现了dangdang上的信息爬取。在此感谢xiooli 童鞋的代码,在编程的过程中给了很多的参考价值。

大家多多交流哈..
代码:
#!/usr/bin/perl -W
#=========get the books info from dangdang.com
#=========by keky, hitkeky[AT]gmail[DOT]com=========
#=========Usage: ./thisfile BOOKNAME=========
#=========Test Environment's encoding is utf8
#=========modules reserved: LWP Text::Iconv==
use strict;
use LWP;
use Text::Iconv;
my $key = $ARGV[0];
my $g2u = Text::Iconv->new('cp936','utf8'); ##ENCODING CONVERTER l change from  cp936 2 utf8
my $u2g = Text::Iconv->new('utf8','gb2312');##ENCODING CONVERTER l change from   utf8 2 gb2312
$key  = $u2g->convert($key);
my $agent = LWP::UserAgent->new();
my $pages = &getMaxPage;
die "There is no result for your query!Please try again" unless $pages != -1; #there is no result
for( my $i = 1; $i <= $pages; ++$i)###print info for pages
{
   my $pageInfo = &getPages( $i );
   &printInfo( $pageInfo );
}
#####*************functions******################
sub removePoint{#remove the marks unusefull
   my   $tp = $_[0];
   $tp =~ s/\<.*?\>//g;
   return $tp;
}
sub printInfo{ #print the information needed
   $_ = $_[0];
   while( 1 ){
      if( $_ =~ m/\<a.*pub_name.*/ ) #match the books
      {
         $_ = $'; #get the remained info
         my $bookName = &removePoint( $& );#get bookName
         print $bookName."\n";
        if( $_ =~ m/\<h6\>.*\<\/h6\>/){ #match the prices of the books
           $_ = $';
           my $price = $&;
           $price = &removePoint( $& );
           print $price."\n";
        }
      }
      else {
         last;
      }
   }
}
sub getPages{
   my $num = $_[0];
   my $url = 'http://search.dangdang.com/book/search_pub.php?key='.$key.'&page='.$num.'&category=01';
   my $response = $agent->get( $url );
   #my $response = $agent->request( $request );
   $response->is_success or  die "$url: ".$response->message."\n";
   my $tmp = $g2u->convert( $response->content);
   return $tmp;
}
sub getMaxPage{ #get the pages' number
   my $tmp = &getPages( 1 );
   if( $tmp =~ m/maxPage=(\d+)/){
      print "you are right!";
      print "maxPage=:".$1."\n";
      return $1;
   }
   return -1;
}

恩,不错,学习了。


页首
 用户资料  
 
36 楼 
 文章标题 : Re: [四星]写一个脚本,自动找到相关图书和价格
帖子发表于 : 2010-06-09 20:29 

注册: 2010-06-09 19:08
帖子: 2
送出感谢: 0 次
接收感谢: 0 次
我是新手看不懂你们再说什么,只是来试试云输入法


页首
 用户资料  
 
37 楼 
 文章标题 : Re: [四星]写一个脚本,自动找到相关图书和价格
帖子发表于 : 2010-07-06 20:14 

注册: 2007-03-01 15:22
帖子: 22
地址: 广州
送出感谢: 0 次
接收感谢: 0 次
代码:
#!/bin/bash

amazon1='http://www.amazon.cn/s/ref=nb_ss?url=search-alias%3Dbooks&keywords='
amazon2='&Go.x=0&Go.y=0&searchKind=keyword'
: > .amazon.html
wget -q -c -O .amazon.html $amazon1$1$amazon2
cnt=`grep -c '<div class="productTitle">' .amazon.html`
for (( i=1;i<=cnt;i++ ))
do
   grep -m $i '<div class="productTitle">' .amazon.html | tail -1 | sed -e 's/<[^>]*>//g' -e 's/&nbsp;/ /g' -e 's/   //g'
   echo "   原价     amazon价"
   grep -m $i '<div class="newPrice">' .amazon.html | tail -1 | sed -e 's/<[^>]*>//g' -e 's/&nbsp;/ /g'
   echo
done

echo '--------------------------------------------------------------------'

dangdang1='http://search.dangdang.com/book/search_pub.php?catalog=01&key='
dangdang2='&SearchFromTop=1'
bookname=`echo $1 | iconv -f utf8 -t gbk`
: > .dangdang.html
wget -q -c -O .dangdang.html $dangdang1$bookname$dangdang2
iconv -c -f gbk -t utf8 .dangdang.html > .dangdang.utf8.html
cnt=`grep -c '<a name="pub_name"' .dangdang.utf8.html`
if (( cnt>12 ))
then
   cnt=12
fi
for (( i=1;i<=cnt;i++ ))
do
   grep -m $i '<a name="pub_name"' .dangdang.utf8.html | tail -1 | sed -e 's/<[^>]*>//g' -e 's/\t//g'
   echo "   原价     dangdang价"
   grep -m $i '<h6><span class="gray del">' .dangdang.utf8.html | tail -1 | sed -e 's/<[^>]*>//g' -e 's/    //g'
   echo
done


代码:
jackhunt@laptop:~/脚本$ ./bookpricecompare.sh ubuntu官方指南
ubuntu官方指南(附盘) 希尔、等 人民邮电 (2007-05出版)
   原价     amazon价
 ¥ 39.00 ¥ 29.30

--------------------------------------------------------------------
Ubuntu官方指南(附光盘)
   原价     dangdang价
¥39.00 ¥32.40 折扣:83折 节省:¥6.60


:em06 很早之前弄了一个简单的比较当当和卓越的书价的脚本


页首
 用户资料  
 
38 楼 
 文章标题 : Re: [四星]写一个脚本,自动找到相关图书和价格
帖子发表于 : 2010-07-07 3:02 
头像

注册: 2010-06-04 1:06
帖子: 1791
送出感谢: 3
接收感谢: 5
:em03 这个有意思!


_________________
1. GIMP入门教程(1~7)——比Photoshop更棒的图像处理软件!
2. Ubuntu桌面培训——初级,新手入门必看


页首
 用户资料  
 
39 楼 
 文章标题 : Re: [四星]写一个脚本,自动找到相关图书和价格
帖子发表于 : 2010-08-20 21:18 

注册: 2010-06-02 22:17
帖子: 3
送出感谢: 0 次
接收感谢: 0 次
不懂,纯支持


页首
 用户资料  
 
40 楼 
 文章标题 : Re: [四星]写一个脚本,自动找到相关图书和价格
帖子发表于 : 2010-11-12 22:32 
头像

注册: 2009-05-03 21:09
帖子: 39
送出感谢: 0 次
接收感谢: 0 次
grep 果然强大,围观


_________________
GONE WITH THE WIND ~~~


页首
 用户资料  
 
41 楼 
 文章标题 : Re: [四星]写一个脚本,自动找到相关图书和价格
帖子发表于 : 2011-04-06 14:21 
头像

注册: 2011-03-28 11:04
帖子: 102
地址: 我躲着,你来找
送出感谢: 0 次
接收感谢: 0 次
大家的shell编程很猛阿


_________________
弯柚博客-Linux-嵌入式-驱动-Android开发->http://www.ourunix.org
使用redhat2年,正在使用unbuntu10.04,现为软件蓝领
Unix/Linux技术研讨群:53720857
《玩转Linux》
《深入Linux驱动》
《Android自学教程》
弯柚博客---一个分享嵌入式系统、Linux新技术的平台,招募一起学习的同志!!!


页首
 用户资料  
 
42 楼 
 文章标题 : Re: [四星]写一个脚本,自动找到相关图书和价格
帖子发表于 : 2013-03-16 15:01 

注册: 2012-05-10 22:17
帖子: 9
送出感谢: 0 次
接收感谢: 0 次
都是大牛啊啊啊。。。。。


页首
 用户资料  
 
43 楼 
 文章标题 : Re: [四星]写一个脚本,自动找到相关图书和价格
帖子发表于 : 2013-03-27 21:59 

注册: 2011-03-10 22:01
帖子: 2
送出感谢: 0 次
接收感谢: 0 次
mark……想学个脚本


页首
 用户资料  
 
44 楼 
 文章标题 : Re: [四星]写一个脚本,自动找到相关图书和价格
帖子发表于 : 2016-05-09 2:21 
头像

注册: 2010-10-07 14:23
帖子: 33999
地址: 某系某星某洲某国某省某市
系统: Archdows10
送出感谢: 29
接收感谢: 151
从京东查询 :em01
已知bug,无法获取第三方价格
代码:
import urllib.request
from bs4 import BeautifulSoup
import sys

def getList(key):
    url="http://search.jd.com/Search?keyword={0}".format(key)
    data=urllib.request.urlopen(url).read()
    page_data=data
    soup=BeautifulSoup(page_data,'lxml')

    namelist=[]
    pricelist=[]
    for link in soup.findAll('div',class_="p-name"):
        namelist.append(link.a.em)
    for link in soup.findAll('div',class_="p-price"):
        pricelist.append(link.strong.i)

    L=[]
    for i in range(len(namelist)):
        p=str(pricelist[i])[:-4]
        p=p[3:]
        n=str(namelist[i])[:-5]
        n=n[4:]
        n=n.replace('<font class="skcolor_ljg">', '')
        n=n.replace('</font>','')
        L.append([p,n])
    L.sort(key=lambda x:x[0])
    for i in L:
        print(i[0],i[1])

getList(sys.argv[1])


_________________
心似浮云常自在,意如流水任东西。
此事背后一定有个天大的咪咪
广告:
1、走过路过,不要错过,dropbox网盘2.25G大放送
py大法好,退C保平安
java多妖孽,VB本异端
日诵一千遍,快活似神仙


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 44 篇帖子 ]  前往页数 上一页  1, 2, 3

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 1 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译