[四星]写一个脚本,自动找到相关图书和价格

除了美化之外,还可以来尝试挑战一下任务
moximoxi
帖子: 1967
注册时间: 2008-09-30 17:46
送出感谢: 4 次
接收感谢: 2 次

Re: [四星]写一个脚本,自动找到相关图书和价格

#16

帖子 moximoxi » 2009-09-23 17:15

xiooli 写了:晕哦,都没人顶,没意思。。。 :em20
:em66 :em66 :em66
头像
Dim
帖子: 640
注册时间: 2009-04-06 15:03
送出感谢: 1 次
接收感谢: 0

Re: [四星]写一个脚本,自动找到相关图书和价格

#17

帖子 Dim » 2009-09-23 17:26

:em11
,
adamscao
帖子: 117
注册时间: 2005-10-04 19:38
送出感谢: 0
接收感谢: 0

Re: [四星]写一个脚本,自动找到相关图书和价格

#18

帖子 adamscao » 2009-09-23 17:58

强,顶!
头像
charleskao
帖子: 206
注册时间: 2008-03-27 17:21
送出感谢: 0
接收感谢: 0
联系:

Re: [四星]写一个脚本,自动找到相关图书和价格

#19

帖子 charleskao » 2009-09-26 10:18

./booksearch.sh: line 9: uni2ascii:找不到命令
sort: 多字符标签 “¥”
./booksearch.sh: line 35: uni2ascii:找不到命令
./booksearch.sh: line 40: %12: 语法出错:此处需要运算符 (error token is "%12")
:em09
先:sudo apt-get install uni2ascii
然后在执行。
:em20
sort: 多字符标签 “¥”
不管如何,先顶再说!、
弱弱的问一句,sort的错误怎么回事?
头像
xiooli
帖子: 6956
注册时间: 2007-11-19 21:51
来自: 成都
送出感谢: 0
接收感谢: 3 次
联系:

Re: [四星]写一个脚本,自动找到相关图书和价格

#20

帖子 xiooli » 2009-09-26 11:19

charleskao 写了:./booksearch.sh: line 9: uni2ascii:找不到命令
sort: 多字符标签 “¥”
./booksearch.sh: line 35: uni2ascii:找不到命令
./booksearch.sh: line 40: %12: 语法出错:此处需要运算符 (error token is "%12")
:em09
先:sudo apt-get install uni2ascii
然后在执行。
:em20
sort: 多字符标签 “¥”
不管如何,先顶再说!、
弱弱的问一句,sort的错误怎么回事?
可能是 ubuntu 上面 sort 的问题,arch 上无此错误。
DFB1234
帖子: 6
注册时间: 2009-02-23 18:59
送出感谢: 0
接收感谢: 0

Re: [四星]写一个脚本,自动找到相关图书和价格

#21

帖子 DFB1234 » 2009-09-27 17:37

将¥ 换成其他的符号,运行正常,否则和楼上的一样:sort: 多字符标签 “¥”
头像
lyh
帖子: 113
注册时间: 2007-05-26 20:57
送出感谢: 0
接收感谢: 0
联系:

Re: [四星]写一个脚本,自动找到相关图书和价格

#22

帖子 lyh » 2009-10-01 16:02

:em11 mark
头像
CGer
帖子: 210
注册时间: 2009-06-21 19:38
来自: CUMT
送出感谢: 0
接收感谢: 0

Re: [四星]写一个脚本,自动找到相关图书和价格

#23

帖子 CGer » 2009-10-03 13:13

有点意思! :em09

代码: 全选

sudo apt-get install girlfriend
正在读取软件包列表... 完成
正在分析软件包的依赖关系树... 完成
有一些软件包无法被安装。
下列的信息可能会对解决问题有所帮助:
下列的软件包有不能满足的依赖关系:
girlfriend: 依赖: house但是它将不会被安装
girlfriend: 依赖: car但是它将不会被安装
house,car: 依赖: money但是它将不会被安装
E: 无法安装的软件包
[/b]
头像
infinite180
帖子: 207
注册时间: 2007-05-31 20:17
来自: DUT
送出感谢: 0
接收感谢: 0
联系:

Re: [四星]写一个脚本,自动找到相关图书和价格

#24

帖子 infinite180 » 2009-10-15 9:54

顶顶,挺不错
I can do if I try!!!
头像
keky
帖子: 231
注册时间: 2007-12-20 15:08
来自: harbin
送出感谢: 0
接收感谢: 0
联系:

Re: [四星]写一个脚本,自动找到相关图书和价格

#25

帖子 keky » 2009-10-18 21:54

呵呵,很久没来了,发现还有这个任务蛮有意思的,正好复习一下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;
}
Keep trying...never say never. blog: H。U。C

代码: 全选

        .--.
       |o_o |
       |:_/ |           < Hello Girl >
      //   \ \             ------------
     (|     | )
    /'\_   _/`\
    \___)=(___/
头像
timebomb
帖子: 153
注册时间: 2008-04-09 11:01
送出感谢: 0
接收感谢: 0

Re: [四星]写一个脚本,自动找到相关图书和价格

#26

帖子 timebomb » 2009-10-23 14:08

mark一下!
liuxin9023
帖子: 1
注册时间: 2009-03-17 12:37
送出感谢: 0
接收感谢: 0

Re: [四星]写一个脚本,自动找到相关图书和价格

#28

帖子 liuxin9023 » 2009-10-24 18:48

费劲 google购物就很不错
danssion
帖子: 31
注册时间: 2006-12-14 15:12
送出感谢: 0
接收感谢: 0

Re: [四星]写一个脚本,自动找到相关图书和价格

#29

帖子 danssion » 2009-10-27 17:15

:em20

有才
很有才
nbd46545
帖子: 117
注册时间: 2007-09-20 13:34
来自: 重庆
送出感谢: 0
接收感谢: 0
联系:

Re: [四星]写一个脚本,自动找到相关图书和价格

#30

帖子 nbd46545 » 2009-10-29 9:43

bash菜鸟来摸8高手的。。 :em11 :em11
回复

回到 “非常任务”