HttpUnit爬取中国知网特定大学网页
继昨天使用Selenium+ChromeDriver爬取中国知网页面后,今天又想到了一些别的方法,就是HtmlUnit,作为一名萌新程序员,多写写总是好的,操蛋的是,还没想出好的爬取方法。
奉上jar包
<!-- https://mvnrepository.com/artifact/net.sourceforge.htmlunit/htmlunit --><dependency><groupId>net.sourceforge.htmlunit</groupId><artifactId>htmlunit</artifactId><version>2.29</version></dependency><!-- https://mvnrepository.com/artifact/net.sourceforge.htmlunit/htmlunit-core-js --><dependency><groupId>net.sourceforge.htmlunit</groupId><artifactId>htmlunit-core-js</artifactId><version>2.28</version></dependency>
HtmlUnit就是无GUI的浏览器操作页面,本质上还是一个浏览器,所以在本质上和Selenium差别不大吧,稳定性可能存在差异。
说一下我的思路把找到特定大学的网址,检索出论文数量,和页面数量,抓取每个论文连接特有的filename,然后点击下一页,以福建农林大学为例,总共100355篇论文,我最多的时候抓取到了10339条记录,还是不完善。
下面就是代码了:
package com.qdcz.plugins;import com.gargoylesoftware.htmlunit.WebClient;
import com.gargoylesoftware.htmlunit.html.HtmlAnchor;
import com.gargoylesoftware.htmlunit.html.HtmlPage;
import com.gargoylesoftware.htmlunit.html.HtmlSpan;
import org.apache.commons.lang3.StringUtils;import java.io.IOException;
import java.util.List;public class CnkiPost {/** 获取动态url* throws IOException* InterruptedException* */public static void main(String args[]) throws IOException, InterruptedException {HtmlPage page=null;WebClient webClient=new WebClient();// 禁止JS//webClient.getOptions().setJavaScriptEnabled(false); 暂不需要下一页需要js渲染点击// 禁止CSSwebClient.getOptions().setCssEnabled(false);// 将返回错误状态码错误设置为falsewebClient.getOptions().setThrowExceptionOnFailingStatusCode(false);// 启动客户端重定向webClient.getOptions().setRedirectEnabled(true);page=webClient.getPage("http://navi.cnki.net/knavi/PPaperDetail?pcode=CDMD&logo=GFJNU");//休息等待数据缓冲Thread.sleep(2000);//获取总页数List<HtmlSpan> span=page.getByXPath("//*[@id=\"partiallistcount2\"]");String nums=span.get(0).asText();int num=Integer.parseInt(nums);System.out.println(num);int y=0;for(int j=0;j<num;j++){List<HtmlAnchor> l=page.getByXPath("//*[@id=\"rightCatalog\"]/div[2]/div[2]/table/tbody/tr/td/a");//获取论文的独有的filenamefor(int i=0;i<l.size();i++){String links=StringUtils.substringAfter(l.get(i).toString(),"FD&");String linkss=StringUtils.substringBefore(links,"&tab");System.out.println("--"+ i+"--"+linkss);y++;}System.out.println("现在爬取到"+ (j+1)+"页");//点击下一页HtmlAnchor next=(HtmlAnchor) page.getByXPath("//*[@id=\"rightCatalog\"]/div[1]/div[2]/a[2]").get(0);next.click();Thread.sleep(3500);}System.out.println(y);}}
老大布置的活过了几天了,还是原地踏步,心塞,头疼。
诸位有什么好的想法,可以告知一下在下,不胜感激。
HttpUnit爬取中国知网特定大学网页相关推荐
- Java使用Selenium+ChromeDriver 爬取中国知网
Java使用Selenium 爬取中国知网 所需Jar包 中国知网的网页结构,我就不在这里赘述了,自己去看,这里我操作的是爬取博硕论文,只抓取前十页 当Selenium无法调取ChromeDriver ...
- Python-Selenium Webdriver+google chrome浏览器爬取中国知网的文献概述
Python-Selenium Webdriver+google chrome浏览器爬取中国知网的文献概述 目录 Python-Selenium Webdriver+google chrome浏览器爬 ...
- Python爬取中国知网文献、参考文献、引证文献
转载自博客园文章作为学习资料,代码及相关介绍非常详细.原文链接见Python爬取 中国知网文献.参考文献.引证文献
- python爬取中国知网(中国优秀硕士学位论文数据库)
笔者这几天受团队任务安排,需要写一份儿关于知网(中国优秀硕士学位论文数据库 入口:http://gb.oversea.cnki.net/kns55/brief/result.aspx?dbPref ...
- 爬取中国知网搜索cnki.net
爬取cnki.net知网搜索页 import requests from lxml.html import etree url = 'https://kns.cnki.net/KNS8/Brief/G ...
- python爬取本地天气信息_用Python写一个爬取中国天气网的终端版天气预报爬虫
导语 前几篇文章介绍了爬取静态网站的主要方法.今天写一个小项目实践一下.本项目可以在终端窗口查询全国3400多个区县的当日天气信息和近七天天气信息. 实现效果 [Python爬虫]写一个爬取中国天气网 ...
- python爬取中国天气网中国全部城市的天气链接
近期自己尝试用python写一个qqbot实现天气查询功能,现已基本实现 已经基本完成爬取中国天气网的所有城市的天气情况链接 下附中国天气网所有城市的名称及对应链接 {'朝阳': 'http://ww ...
- R语言rvest包3步爬取中国天气网国内所有城市(县)7天实时天气预报数据
接上一篇用R语言爬取中国天气网单个城市的7天实时天气预报数据,这篇文章综合一下,使用R语言rvest包3步爬取中国天气网国内所有城市(县)7天实时天气预报数据,这里的步数跨度可能有点长,但思路确实是3 ...
- python爬取中国天气网中城市及其对应编号
文章目录 一.前言 二.思路 三.程序 四.注意事项 一.前言 为了实现爬取各地城市天气预报及其可视化的需要,爬取中国天气网中城市及其对应编号 . 天气预报可视化文章如下: <python爬虫, ...
最新文章
- 每天一道LeetCode-----化简路径
- 2017一季度JAVA面试题锦集
- centos5.9 mysql_CentOS 5.9系统服务器使用yum安装Apache+PHP+MySQL环境
- axis=0 与axis=1 的区分
- phpcms v9 sql数据{$r[content]},前端如何换行显示?
- javascript实现的一个信息提示的小功能/
- 95-140-108-源码-transform-算子process
- win10配置清华源——快速安装anaconda、TensorFlow和pytorch
- spring mvc-基础-简单程序
- uboot移植——启动第一阶段
- DoNet6新特性 PriorityQueue 优先队列终于来啦~
- css 改变图片的背景色,css3实现背景图片颜色修改的多种方式
- BCB 第三方组件/控件 ZZ
- 结对开发石家庄地铁线路
- Linux---带你区分根目录 和 家目录
- html百度换皮肤,windows7系统下怎么给百度网页更换皮肤
- Qua Vadis Eclipse? 第一部分
- 数据分析三剑客之特征值提取(七)
- xampp软件安装流程
- 云服务 saas_SaaS和云服务策划