码迷,mamicode.com
首页 > 其他好文 > 详细

fa下载器总结

时间:2017-10-28 19:04:32      阅读:147      评论:0      收藏:0      [点我收藏+]

标签:查询   com   线程   比较   nload   导致   批量下载   经历   字符   

前言

作为一名合格的furry,我不仅要吸娜娜奇,还要天天泡在fa吸大触们的furry作品,这其中难免遇到某个十分喜爱的作者,于是便想down空此作者的所有作品。 鉴于一张张的保存实在费时费力,写个爬虫来解决眼前的问题似乎再好不过了,所以便有了现在这个下载器。

功能介绍

根据作者名批量下载此作者的所有作品,包括画廊和手稿。可填写自定义高级参数,包括从第几页第几张开始,下载多少张。对于登陆后才能查看的内容,需要填写字符串cookie。下载的过程中会有详细的下载日志显示在文本框中。

目标操作平台

Windows

语言

c#

最低需求

.net4.0

代码流程框架

收集用户在界面中输入的信息> 初始化整体下载所需的变量> 开一个线程来执行下载函数> 判断当前需要下载哪个图集> 进入对应图集的下载函数并初始化相关变量> 下载并解析列表页面> 循环下载本页的所有图片> 循环下载所有页> 下载下一个图集> 执行结束函数。

遇到的坑

这么个小玩意本以为不会花太久就能做成心仪的样子,然而事实是从开始到现在断断续续已经做了半年,经历好几个“大版本”修改,才算满意。

这里整理下曾经遇到的坑

初始化的时机

并不是所有参数的初始化时机都是一样的,比如总下载量需要在整个下载的最开始初始化为零,这个时机在用户按下开始按钮之后,下载开始之前。

而另一个参数,单个图集的总下载量,这个参数是为了判定是否已经到达最大下载量。它就需要在另一个时机来归零,也就是放在图集下载函数的最开始,这样就可以在连续下载图集的时候,准确无误的初始化。

cookie模拟登录

这个应该是爬虫里比较基本的操作了,不过我自己按照网上的步骤写出来的代码,经常登陆失败,不知道是cookie的问题还是代码的问题。后来索性直接用了网上比较成熟的整套代码,只用来做cookie登录真是大材小用了,不过起码不用为轮子的事操心。

然后…还是登陆失败,那就很明了了,cookie有问题,所以我便仔细研究cookie字符串的格式,发现其中有几个键值对的格式十分的奇妙,两个分号间有两个等号,导致程序分析失败,,

以后还是不用360浏览器了。

去掉捣乱的几个cookie之后就没什么问题了

html页面分析

开始是用的string类里面的各种函数,查询字符串,移位,替换,代码又长又难以理解,后来去学了正则表达式,三行搞定所有分析,强大到无话可说。

结尾

写这个软件之前我都不知道啥是爬虫,直到后来有人跟我说这就是。。

很高兴通过这个软件既满足了私欲【x】,又学到了一堆新知识,尤其是强大的正则【导致我去学了perl,不过半途而废了】。

代码已经发布到github,地址是这里

fa下载器总结

标签:查询   com   线程   比较   nload   导致   批量下载   经历   字符   

原文地址:http://www.cnblogs.com/recallfuture/p/fa-xia-zai-qi-zong-jie.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!