搜索网址中汉字的转变和网页中下载地址的提取

sh/bash/dash/ksh/zsh等Shell脚本
回复
nobodyhome
帖子: 26
注册时间: 2010-01-01 14:04
送出感谢: 0
接收感谢: 0

搜索网址中汉字的转变和网页中下载地址的提取

#1

帖子 nobodyhome » 2010-11-24 15:15

最近迷上看小说(异世,穿越,玄幻类的),通常是在新浪IASK上找。这类小说淘汰率比较高,阅读得也很快,因此不久我便对一个个搜索,然后下载的重复操作感到厌烦,决定写个脚本来批量下载。

要下载小说的名字列表来源于IASK用户空间的目录。

现在遇到两个问题:
1.搜索网址中汉字的变换。比如搜“佛本是道”,其搜索网址为http://ishare.iask.sina.com.cn/search.php?key=%B7%F0%B1%BE%CA%C7%B5%C0&format=txt,“佛本是道”变成了红色部分的代码,这种变换是怎么样的?

2.下载页面的真实下载地址找不到。网页源码中找不到。。。。。。(硬伤)
头像
trigger
帖子: 1585
注册时间: 2006-10-25 18:08
送出感谢: 0
接收感谢: 0

Re: 搜索网址中汉字的转变和网页中下载地址的提取

#2

帖子 trigger » 2010-11-24 15:50

能把现有的代码给大家看看不?
楼主真是一派胡言,真可谓:“两个黄鹂鸣翠柳,不知所云;一行白鹭上青天,不知所止“。本来不想和你辩论,今天气愤不过,和你理论一番。我国宪法写得清清楚楚:“一夜夫妻百日恩,七楼以上才有电梯”。这个想必你知道,既然知道,你就不能断章取义,就算是天气预报,它还有不准的时候呢!!!再者说了,那中国银行也不是你一家开的。人家马拉多纳都结婚了,你还拿着粮票顶什么用呢。真是滑天下之大稽。前些日子,全国人大刚刚开过会,郑重声明:“中国不搞多party制,存栏母猪给补贴”。多好的事呢,楞让你这号人给搅混了。
aerofox
帖子: 1453
注册时间: 2008-05-24 8:30
送出感谢: 2 次
接收感谢: 31 次

Re: 搜索网址中汉字的转变和网页中下载地址的提取

#3

帖子 aerofox » 2010-11-24 21:43

代码: 全选

echo -n 佛本是道 | iconv -t GB18030 | od -txC
0000000 b7 f0 b1 be ca c7 b5 c0
0000010
看出来是怎么来的吧?
如果安装了 vim,会有一个工具 xxd,则可以用下面的命令得到:

代码: 全选

echo -n 佛本是道 | iconv -t GB18030 | xxd -ps -u | sed 's/../%&/g'
头像
astolia
论坛版主
帖子: 3153
注册时间: 2008-09-18 13:11
送出感谢: 1 次
接收感谢: 528 次

Re: 搜索网址中汉字的转变和网页中下载地址的提取

#4

帖子 astolia » 2010-11-25 17:15

楼上说了第一点,我就来讲讲第二点吧。其实只要有一些网页编程经验就知道该怎么做了。

随便从搜出来的结果中找了一个(http://ishare.iask.sina.com.cn/f/7267835.html)为例。

页面中你可以找到这么一段:

代码: 全选

<form name="downLoad" id="downLoad" method="post" action="/download.php?fileid=7267835" target="iframe_data" style="margin: 0pt;">
action里面就是下载的路径了,由于是相对路径,前面要加上域名,也就是http://ishare.iask.sina.com.cn/download.php?fileid=4775190,但这样还是不够的,因为它用的是post方法,所以用普通的get方法下载是不行的,而且新浪也有对referer的检查。

反正最后你可以这么写:

代码: 全选

wget --post-data="fileid=7267835" --referer="http://ishare.iask.sina.com.cn/f/7267835.html" 'http://ishare.iask.sina.com.cn/download.php?fileid=7276835' -O a.txt
就存到a.txt里了,--post-data和--referer两个参数应该是一看就明白的
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙
送出感谢: 4 次
接收感谢: 256 次

Re: 搜索网址中汉字的转变和网页中下载地址的提取

#5

帖子 eexpress » 2010-11-25 21:54

bash可以使用uni2asc或者 asc2uni
通常是 -a J 的参数

如果你使用perl。就没这些事情了。想想无敌的perlre和无数现成的网络模块吧。
● 鸣学
nobodyhome
帖子: 26
注册时间: 2010-01-01 14:04
送出感谢: 0
接收感谢: 0

Re: 搜索网址中汉字的转变和网页中下载地址的提取

#6

帖子 nobodyhome » 2010-11-26 1:08

谢谢3楼4楼。我只找到相对路径那里,然后猜完整路径猜了很久,都不对。
ee,长久受你的蛊惑,已经开始看PERL了。《Perl实例精解》第四版(中文版)有不少代码有问题,运行老报错,比如把"`"打成"'"。现在在看《PERL语言入门》第五版(中文版)。
回复

回到 “Shell脚本”