通常webmagic爬取数据,无非就是分析页面结构,然后解析数据,一般这种类型的页面,网站都是get请求。但是有些数据,是通过js渲染的,通过post请求获取到json数据,然后渲染到页面上。所以针对这种类型的网站单单通过分析页面结构是行不通的,所以则需要模拟post请求返回数据,然后进行获取。
准备工作:导入需要的maven依赖包
<dependency>
<groupId>us.codecraft</groupId>
<artifactId>webmagic-core</artifactId>
<version>0.7.3</version>
</dependency>
<dependency>
<groupId>us.codecraft</groupId>
<artifactId>webmagic-extension</artifactId>
<version>0.7.3</version>
</dependency>
一、普通文章列表页面数据的爬取。(非js渲染的页面)
1.步骤
(1)爬虫程序的启动。(添加初始的url,当然url可以用正则表达式来进行过滤)
Spider.create(new TestDemo()).addUrl("http://www...").thread(5).run();
(2)在当前页面发现文章详情页的url,然后将其添加到待爬队列中
List<String> urls = page.getHtml().xpath("//div[@id='pageList']/a"