分页: 1 / 1
搜索网址中汉字的转变和网页中下载地址的提取
发表于 : 2010-11-24 15:15
由 nobodyhome
最近迷上看小说(异世,穿越,玄幻类的),通常是在新浪IASK上找。这类小说淘汰率比较高,阅读得也很快,因此不久我便对一个个搜索,然后下载的重复操作感到厌烦,决定写个脚本来批量下载。
要下载小说的名字列表来源于IASK用户空间的目录。
现在遇到两个问题:
1.搜索网址中汉字的变换。比如搜“佛本是道”,其搜索网址为http://ishare.iask.sina.com.cn/search.php?key=%B7%F0%B1%BE%CA%C7%B5%C0&format=txt,“佛本是道”变成了红色部分的代码,这种变换是怎么样的?
2.下载页面的真实下载地址找不到。网页源码中找不到。。。。。。(硬伤)
Re: 搜索网址中汉字的转变和网页中下载地址的提取
发表于 : 2010-11-24 15:50
由 trigger
能把现有的代码给大家看看不?
Re: 搜索网址中汉字的转变和网页中下载地址的提取
发表于 : 2010-11-24 21:43
由 aerofox
代码: 全选
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'
Re: 搜索网址中汉字的转变和网页中下载地址的提取
发表于 : 2010-11-25 17:15
由 astolia
楼上说了第一点,我就来讲讲第二点吧。其实只要有一些网页编程经验就知道该怎么做了。
随便从搜出来的结果中找了一个(
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两个参数应该是一看就明白的
Re: 搜索网址中汉字的转变和网页中下载地址的提取
发表于 : 2010-11-25 21:54
由 eexpress
bash可以使用uni2asc或者 asc2uni
通常是 -a J 的参数
如果你使用perl。就没这些事情了。想想无敌的perlre和无数现成的网络模块吧。
Re: 搜索网址中汉字的转变和网页中下载地址的提取
发表于 : 2010-11-26 1:08
由 nobodyhome
谢谢3楼4楼。我只找到相对路径那里,然后猜完整路径猜了很久,都不对。
ee,长久受你的蛊惑,已经开始看PERL了。《Perl实例精解》第四版(中文版)有不少代码有问题,运行老报错,比如把"`"打成"'"。现在在看《PERL语言入门》第五版(中文版)。