0%

瞎bb时间

上次写文章还是很早以前了,中间断断续续的在写,但是断断续续的在删。老色批又来了。

本次关于某漫画网站的漫画的爬取。

动机

我在看一些视频网站,一些漫画网站,一些小说网站时,下面就有一些稀奇古怪的网站,你懂的。像我这样老色批就喜欢点进去看一看,上面就是这样的一个网站,估计以后就会改。

在该网站看漫画,前面几章是免费看的,看的心痒痒,但后面的几张就需要付费购买了。像我这样的穷屌丝,买是不可能买的,但又想看,只能花点时间白嫖,看能不能破解。

思路

为了把整个网站的漫画都存到我的硬盘里面,需要得到所有漫画的名称,每本漫画的所有章节,以及每个章节的漫画图片。

  1. 所有漫画名称

    可以在找书一栏,看到所有的漫画

    用鼠标下滑,发现右边的XHR会不断的又新文件产生,因此分析一下这个文件的内容。

    经过对比Request URL的内容,很容易就看出page=$i$发生了改变,因此参考网页,构造一个get请求就可以得到json内容了,Preview就是最后得到的json文件了,可以得到每本漫画的bookId了,比如”/book/info/id/819”,最后的数字414就是这本书的ID了

  2. 有了这本书的Id,那么访问这本漫画,右边开发者栏,看到有3个XHR文件,稍微preview一下,infoOnload是这些人的评论啥的。

    在左侧点击目录,就出现了一个listOnload文件,preview就能看到看到各个章节信息。

    思路同上,还是看headers内容,这次是构造Post请求了。表单数据都有显示,是上面的漫画的ID

    最后经过爬取,可以得到本章节的ID,如这次的47972

  3. 章节的ID也已经拿到,那么最后该拿该章节的所有图片了。

    在上面免费的第二话的XHR的preview中,可以看到有imgdata,imgdate2,这两个属性,我试着用浏览器访问其中的内容,是可以看到一些图片的。

    在上面收费的第8话的XHR的preview中,看到没有了imgdata属性,但是imgdata2属性还在,在尝试用浏览器能不能访问这些链接,发现居然是可以的,图片也是漫画的图片,那么至此,其实不需要破解收费其实也能够访问这些漫画。

    不足之处:在imgdata2下,有一些链接是无法直接访问的,加上referen头也不行。姑且放过,这就导致章节中存在图片缺失,不过老色批会在意这个情节嘛?

    最后只需要像上面构造post请求就行了,把图片链接都拿到,最后写好items,pipeline就行了。

    最后展示一下最后的成果吧,部署在服务器上,还没有爬完。

代码实现

github上了

写一下下github上传项目操作吧,怕自己又又又又忘了。

  1. 网页github新建一个项目xphone2020
  2. 使用命令 $git\ clone\ xxxx$ 这个项目到本地,然后把代码复制到clone下的这个文件夹
  3. 使用命令 $ git \ add \ . $ 将代码文件全部添加到缓存中。
  4. 使用命令 $git \ commit -m \ ‘注释’$ ,表示提交,还没有真正提交。
  5. 使用命令$git \ push \ -u \ origin \ master$,(此操作目的是把本地仓库push到github上面,此步骤需要你输入帐号和密码)finished.

github相关问题。

  1. 配置账号:

    首先配置user_name,email_name

    1
    $ git config --global user.name "你的github名"
    1
    $ git config --global user.email "你的giuhub邮箱地址"

    然后生成公钥私钥

    1
    ssh-keygen -t rsa -C "你的github邮箱"

    最后一路enter,可能需要输入密码

    Your identification has been saved in /c/Users/pc/.ssh/id_rsa.
    Your public key has been saved in /c/Users/pc/.ssh/id_rsa.pub.
    将id_rsa.pub粘贴到github上的SSH key

  2. 原有账号删除

    • 运行一下命令缓存输入的用户名和密码:
    1
    git config --global credential.helper wincred
    • 清除掉缓存在git中的用户名和密码
    1
    git credential-manager uninstall
  3. git的代理问题

    本地开启VPN后,GIt也需要设置代理,才能正常略过GFW,访问goole code等网站

    设置如下(可复制):

    1
    2
    3
    4
    5
    6
    7
    git config --global https.proxy http://127.0.0.1:1080

    git config --global https.proxy https://127.0.0.1:1080

    git config --global http.proxy 'socks5://127.0.0.1:1080'

    git config --global https.proxy 'socks5://127.0.0.1:1080'

    取消

    1
    2
    3
    git config --global --unset http.proxy
    b
    git config --global --unset https.proxy

总结

本来想着通过搜索,学习一些网站破解的知识,拿到一些特别的数据,结果,可能时因为小网站吧,数据加密也不严密,反爬虫策略也没有,中间学了不少post请求,头大。但最后的结果还算满意吧,一开口就懂了.