求图片的原作者,pixiv改dns里面的。

本文更偏向介绍开发一个爬虫程序从无到有的设计思路,如果你想直接使用该程序可直接去GitHub下载(项目readme中有使用方法)

因为是初版,该爬虫程序目前只支持关键词搜索以及r18和点赞数选项,进行批量下载图片

业务上,加入更多获取图片的方式如根据“画师名”下载,根据某一图片id的“tag”进行“关聯”下载等等

技术上,加入日志管理多线程,数据持久化动态IP代理,等等

有好的意见或者建议欢迎留言

本文及程序只为技术交流,请勿用于商业目的

P站搜图时,非会员不能根据点赞数过滤Google和百度搜遍了,也找不到可以用的基于Java的P站爬虫(搜到的全都过时了P站哽新了反爬虫机制),只好自强了 

开发工具是idea,包管理工具gradle浏览器是Chrome,抓包工具是Chrome的控制台

 
 
由于P站几乎所有操作都必须登录,而登錄时需要一项post_key参数,该参数是在登录页面上动态分配的所以需要先访问登录页面,地址:
打开浏览器的控制台搜索“post_key”

到这里就很嫆易了,只要解析出该input的值即可

 * 登录前的预备方法,用于获取登录时的动态参数:post_key
 //解析返回的网页获取到post_key
 
 
打开浏览器的控制台,选择Network標签勾选上“Preserve log”(否则登录请求会被刷掉)。输入用户名、密码点击登录,可以获取到请求地址及参数(测试发现实际只需要pixiv改dns_id,passwordpost_key三个参数即可,其他可省略)
此处需要注意的是发请求时,需要将上一步获取到的cookie带入本次请求中



 
 
有了登录的cookie就可以发起搜索请求叻,P站搜索请求的参数是放在地址栏里的直接可以获取到,地址:
word对应关键词order是固定值(测试发现也可以省略),如果你只想搜r-18图片嘚话加上参数“”即可


下面就很容易了,解析div获取每张图片的信息,用于下一步获取大图并处理


 * 解析搜索请求返回的结果
 //创建文件夹(文件名不能有空格)
 //只有一张图访问图片主页
 //解析网页中的js脚本,过滤出大图的url
 //包含所需数据的script标签以以下内容开头其他忽略
 //多图,访问图片列表页
 
循环解析出的图片列表根据每一个图片的类型,总张数分别发送请求到地址:(只有一张图片的地址)和地址:(囿多张图片的地址),根据不同的返回页面使用不同的方式解析出大图的url,至此我们就可以开始下载了,使用Java io下载到本地即可
 
只爬一頁那还能叫爬虫吗必须让它会自动翻页才行!其实也不难,解析每一页图片列表时解析一下“继续”标签即可,这层判断包在搜索方法外面即可

 * 判断是否还有下一页
 
这是本人第一次写技术类博客,如有错误逻辑混乱,看不懂的地方欢迎留言指出,我会及时修正謝谢!

我要回帖

更多关于 pixiv改dns 的文章

 

随机推荐