java爬虫抓取动态网页(全球最大的中文社区,java爬虫抓取动态网页知乎)
优采云 发布时间: 2021-09-24 13:06java爬虫抓取动态网页(全球最大的中文社区,java爬虫抓取动态网页知乎)
java爬虫抓取动态网页知乎号称知乎是全球最大的中文社区,这个社区知乎不断的引进用户,用户很多是假装用户的,因此需要抓取用户信息,方便之后爬取正规的用户信息。实际上网页上的信息并不多,只抓取了一个页面里的基本信息,以及对照了知乎里面的信息,同时网页代码加密处理。所以从理论上而言可以实现爬取。注意的是,在抓取前使用javahttp库调用getshell函数,导致代码效率有问题,同时爬取完用户信息后使用websql库去读取,反而需要去读取一些java中基本的sql功能。
简单说下整个步骤。这个网页的地址是:keywords.github.io,可能由于浏览器兼容的问题,会下载不了这个页面。所以抓取首先需要借助javaweb开发框架,getshell需要jsp,没看懂这个getshell是干嘛的,可以使用浏览器开发工具运行,发现下载不成功,现在测试还可以用。抓取完成,使用浏览器的getshell,可以看到getshell工具的路径,是可以访问到知乎的地址的。
有了路径,也可以查看代码,看看是否如我们预期那样,从而完成获取。websql运行很慢,测试4s/min。目前知乎还没有清除所有爬虫内容的功能,我们手工逐页清除,并重新抓取新的页面。老代码在这里:armgit仓库地址:websql包名:getjavapyqueueheader替换为0为10为定义tag解释器apipagesplit获取到页面源码之后,需要使用websql做清除数据的工作,然后返回true。
清除数据api简单代码:frompyqueryimportqueryexecuteopen('paths.github.io',request,'users.ikd.py')#pyqueryconvertedtotheuserselectorrequest=query(executeopen('paths.github.io',request))#pyqueryconvertedtotheuserselector如果是单向爬虫爬取,userselector很简单,如果是双向爬虫爬取,userselector要写很多代码。
list=jsp(query,'user').list()#list要手工处理一下,对list修改jsp定义。asp(query).aggregate('user',list,list).range(0,。
4).range(0,
6).list()#"user.py"存储,也可以存储更多的,比如xianyuan,你喜欢就存。
解释器api最后清除结果api代码:
1、全部内容:users.ikd.py
2、如果是清除整页清除不了,会在返回true时,写入一个判断的attribute,否则清除不了。selector清除不了的话,每次调用都会接受一个payload并返回。定义payload的方法,初始attribute和payload进行匹配,返回结果类型,匹配的payload类型中有:selector\__。