zoukankan      html  css  js  c++  java
  • fa下载器总结

    前言

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

    功能介绍

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

    目标操作平台

    Windows

    语言

    c#

    最低需求

    .net4.0

    代码流程框架

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

    遇到的坑

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

    这里整理下曾经遇到的坑

    初始化的时机

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

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

    cookie模拟登录

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

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

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

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

    html页面分析

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

    结尾

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

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

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

  • 相关阅读:
    谈谈入职新公司1月的体会
    来点高逼格的,使用前端Sendmessage实现SSO
    2019做的第一个艰难决定
    Golang中设置函数默认参数的优雅实现
    linux系统shell基础知识入门二
    在AWS中自定义Credential Provider实现Client连接
    linux系统shell基础知识入门
    初学者学习golang可能遇到的坑
    【Menu】 目录索引
    rsync 服务介绍及相关实验
  • 原文地址:https://www.cnblogs.com/recallfuture/p/fa-xia-zai-qi-zong-jie.html
Copyright © 2011-2022 走看看