1、有些页面元素被隐藏起来了->换selector解决
2、有些数据保存在js/json对象中->截取对应的串,分析解决
3、通过api接口调用->伪造请求获得数据
还有一个终极方法
4、使用phantomjs或者casperjs这种headless浏览器
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) {}js代码是需要js引擎运行的,Python只能通过HTTP请求获取到HTML、CSS、JS原始代码而已。不知道有没有用Python编写的JS引擎,估计需求不大。
我一般用PhantomJS、CasperJS这些引擎来做浏览器抓取。
直接在其中写JS代码来做DOM操控、分析,以文件方式输出结果。
让Python去调用该程序,通过读文件方式获得内容。