个人使用的话不算,要是用于商业就算了,公司不会找你,但是你要是来这个来赚钱,商业目的,你就等着法律吧
成都创新互联公司主营浚县网站建设的网络公司,主营网站建设方案,app软件开发,浚县h5小程序开发搭建,浚县网站营销推广欢迎浚县等地区企业咨询
[img]抓取动态页面有两种常用的方法,一是通过JavaScript逆向工程获取动态数据接口(真实的访问路径),另一种是利用selenium库模拟真实浏览器,获取JavaScript渲染后的内容。但selenium库用起来比较繁琐,抓取速度相对较慢,所以第一种方法日常使用较多。
抓取js动态生成的内容的页面有两种基本的解决方案
1用dryscrape库动态抓取页面
js脚本是通过浏览器来执行并返回信息的,所以,抓取js执行后的页面,一个最直接的方式就是用python模拟浏览器的行为。WebKit 是一个开源的浏览器引擎,python提供了许多库可以调用这个引擎,dryscrape便是其中之一,它调用webkit引擎来处理包含js等的网页!
2 selenium web测试框架
selenium是一个web测试框架,它允许调用本地的浏览器引擎发送网页请求,所以,它同样可以实现抓取页面的要求。
String url = "";
try {
WebClient webClient = new WebClient(BrowserVersion.FIREFOX_10);
//设置webClient的相关参数
webClient.getOptions().setJavaScriptEnabled(true);
webClient.getOptions().setCssEnabled(false);
webClient.setAjaxController(new NicelyResynchronizingAjaxController());
//webClient.getOptions().setTimeout(50000);
webClient.getOptions().setThrowExceptionOnScriptError(false);
//模拟浏览器打开一个目标网址
HtmlPage rootPage = webClient.getPage(url);
System.out.println("为了获取js执行的数据 线程开始沉睡等待");
Thread.sleep(3000);//主要是这个线程的等待 因为js加载也是需要时间的
System.out.println("线程结束沉睡");
String html = rootPage.asText();
System.out.println(html);
} catch (Exception e) {
}
用nodejs+puppeteer,解析dom结构获取,或者直接观察返回数据的接口,看能不能直接调用
如果是写在同一个页面里的 直接到script包围的代码段里面去找
如果是写在引用的js文件里面的 可能你怎么爬也娶不到了
其实分页这玩意儿没有很复杂啊 干嘛想着爬这玩意儿呢 累不累得慌啊?