返回信息流最近在做网页爬虫,我要去百度百科的总词条数,这个是每时每刻都在变化的,了解了下htmlunit这个工具,但是老是报错,htmlunit的jar换了好几个版本都不行,求大侠指导,代码如下
WebClient webClient = new WebClient(BrowserVersion.CHROME);
webClient.getOptions().setJavaScriptEnabled(true);
//webClient.setAjaxController(new NicelyResynchronizingAjaxController());
webClient.getOptions().setCssEnabled(false);
//webClient.getOptions().setRedirectEnabled(true);
webClient.getOptions().setTimeout(10000);
webClient.getOptions().setThrowExceptionOnScriptError(false);
// 构造一个URL
String url = "http://baike.baidu.com/";
// 通过getPage()方法,返回相应的页面
final HtmlPage page = (HtmlPage) webClient.getPage(url);
报错如下:java.util.regex.PatternSyntaxException: Illegal octal escape sequence near index 15
([yMdwhHmsf])\0
^
at java.util.regex.Pattern.error(Pattern.java:1713)
at java.util.regex.Pattern.o(Pattern.java:2810)
at java.util.regex.Pattern.escape(Pattern.java:2054)
at java.util.regex.Pattern.atom(Pattern.java:1952)
at java.util.regex.Pattern.sequence(Pattern.java:1834)
at java.util.regex.Pattern.expr(Pattern.java:1752)
at java.util.regex.Pattern.compile(Pattern.java:1460)
at java.util.regex.Pattern.<init>(Pattern.java:1133)
at java.util.regex.Pattern.compile(Pattern.java:847)
at com.gargoylesoftware.htmlunit.javascript.regexp.HtmlUnitRegExpProxy.doAction(HtmlUnitRegExpProxy.java:102)
at com.gargoylesoftware.htmlunit.javascript.regexp.HtmlUnitRegExpProxy.action(HtmlUnitRegExpProxy.java:74)
at net.sourceforge.htmlunit.corejs.javascript.NativeString.execIdCall(NativeString.java:455)
at net.sourceforge.htmlunit.corejs.javascript.IdFunctionObject.call(IdFunctionObject.java:89)
at net.sourceforge.htmlunit.corejs.javascript.Interpreter.interpretLoop(Interpreter.java:1531)
at net.sourceforge.htmlunit.corejs.javascript.Interpreter.interpret(Interpreter.java:798)
at net.sourceforge.htmlunit.corejs.javascript.InterpretedFunction.call(InterpretedFunction.java:105)
at net.sourceforge.htmlunit.corejs.javascript.ContextFactory.doTopCall(ContextFactory.java:411)
at com.gargoylesoftware.htmlunit.javascript.HtmlUnitContextFactory.doTopCall(HtmlUnitContextFactory.java:309)
at net.sourceforge.htmlunit.corejs.javascript.ScriptRuntime.doTopCall(ScriptRuntime.java:3057)
at net.sourceforge.htmlunit.corejs.javascript.InterpretedFunction.exec(InterpretedFunction.java:115)
好几处报错都是这个错误,如果把js那个true改为false就没有错误,但是也获取不到js加载后的数据了,我想应该是js报的错,有谁能帮助解决一下!不胜感激!
这是一条镜像帖。来源:北邮人论坛 / java / #38011同步于 2015/1/10
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Java机器人发帖
爬虫:获取js动态加载网页上的内容
xiruimainly
2015/1/10镜像同步12 回复
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
【 在 sj09211463 的大作中提到: 】
: lz说的是这个
: http://baike.baidu.com/
: 右侧的词条数和用户数么?
对的,你有办法吗
【 在 xiruimainly 的大作中提到: 】
: 对的,你有办法吗
很简单呀。不用模拟js,答案就在页面的代码里。你再好好看看,看不出来再找我。
【 在 sj09211463 的大作中提到: 】
: 很简单呀。不用模拟js,答案就在页面的代码里。你再好好看看,看不出来再找我。
在网页源代码里取出来的值为0,这个因为js还没加载,这个值是时刻在变的,每次访问会在js加载后才会出现正确值,jsoup只能获取静态的值,无法获取动态的,我试过了
暖姐姐 能简单解释下“架构”的意思么。经常说调整架构,是改变了什么呢。最好用Java相关的说。谢啦
【 在 nuanyangyang 的大作中提到: 】
: phantomjs
【 在 bobogogo 的大作中提到: 】
: 暖姐姐 能简单解释下“架构”的意思么。经常说调整架构,是改变了什么呢。最好用Java相关的说。谢啦
不懂。帮你谷歌的:http://zh.wikipedia.org/wiki/%E8%BD%AF%E4%BB%B6%E6%9E%B6%E6%9E%84
如果说是所有网站的,很难做到,这也是google一直在攻克的难题而且是做的最好的。可以用webdriver一类的工具试试,模拟浏览器下载网页的所有数据。
谢谢啦 我看看
【 在 nuanyangyang 的大作中提到: 】
:
: 不懂。帮你谷歌的:http://zh.wikipedia.org/wiki/%E8%BD%AF%E4%BB%B6%E6%9E%B6%E6%9E%84