上次写文章还是很早以前了,中间断断续续的在写,但是断断续续的在删。老色批又来了。
本次关于某漫画网站 的漫画的爬取。
动机 我在看一些视频网站,一些漫画网站,一些小说网站时,下面就有一些稀奇古怪的网站,你懂的。像我这样老色批就喜欢点进去看一看,上面就是这样的一个网站,估计以后就会改。
在该网站看漫画,前面几章是免费看的,看的心痒痒,但后面的几张就需要付费购买了。像我这样的穷屌丝,买是不可能买的,但又想看,只能花点时间白嫖,看能不能破解。
思路 为了把整个网站的漫画都存到我的硬盘里面,需要得到所有漫画的名称,每本漫画的所有章节,以及每个章节的漫画图片。
所有漫画名称 可以在找书一栏,看到所有的漫画 用鼠标下滑,发现右边的XHR会不断的又新文件产生,因此分析一下这个文件的内容。 经过对比Request URL的内容,很容易就看出page=i 发生了改变,因此参考网页,构造一个get请求就可以得到json内容了,Preview就是最后得到的json文件了,可以得到每本漫画的bookId了,比如”/book/info/id/819”,最后的数字414就是这本书的ID了 有了这本书的Id,那么访问这本漫画,右边开发者栏,看到有3个XHR文件,稍微preview一下,infoOnload是这些人的评论啥的。
在左侧点击目录,就出现了一个listOnload文件,preview就能看到看到各个章节信息。
思路同上,还是看headers内容,这次是构造Post请求了。表单数据都有显示,是上面的漫画的ID
最后经过爬取,可以得到本章节的ID,如这次的47972
章节的ID也已经拿到,那么最后该拿该章节的所有图片了。
在上面免费的第二话的XHR的preview中,可以看到有imgdata,imgdate2,这两个属性,我试着用浏览器访问其中的内容,是可以看到一些图片的。
在上面收费的第8话的XHR的preview中,看到没有了imgdata属性,但是imgdata2属性还在,在尝试用浏览器能不能访问这些链接,发现居然是可以的,图片也是漫画的图片,那么至此,其实不需要破解收费其实也能够访问这些漫画。
不足之处:在imgdata2下,有一些链接是无法直接访问的,加上referen头也不行。姑且放过,这就导致章节中存在图片缺失,不过老色批会在意这个情节嘛?
最后只需要像上面构造post请求就行了,把图片链接都拿到,最后写好items,pipeline就行了。
最后展示一下最后的成果吧,部署在服务器上,还没有爬完。
代码实现 放github 上了
写一下下github上传项目操作吧,怕自己又又又又忘了。
网页github新建一个项目xphone2020 使用命令 git\ clone\ xxxx 这个项目到本地,然后把代码复制到clone下的这个文件夹 使用命令 git \ add \ . 将代码文件全部添加到缓存中。 使用命令 git \ commit -m \ ‘注释’ ,表示提交,还没有真正提交。 使用命令git \ push \ -u \ origin \ master ,(此操作目的是把本地仓库push到github上面,此步骤需要你输入帐号和密码)finished. github相关问题。
配置账号:
首先配置user_name,email_name
$ git config --global user.name "你的github名" $ git config --global user.email "你的giuhub邮箱地址" 然后生成公钥私钥
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
原有账号删除
git config --global credential.helper wincred
git credential-manager uninstall
git的代理问题
本地开启VPN后,GIt也需要设置代理,才能正常略过GFW,访问goole code等网站
设置如下(可复制):
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' 取消
git config --global --unset http.proxy b git config --global --unset https.proxy 总结 本来想着通过搜索,学习一些网站破解的知识,拿到一些特别的数据,结果,可能时因为小网站吧,数据加密也不严密,反爬虫策略也没有,中间学了不少post请求,头大。但最后的结果还算满意吧,一开口就懂了.