二、快速入门

爬虫示例参考

(爬虫示例代码位于 /test 目录下)

  • 1、爬取页面数据并封装VO对象
  • 2、爬取页面,下载Html文件
  • 3、爬取页面,下载图片文件
  • 4、爬取页面,代理IP方式
  • 5、爬取公开的免费代理,生成动态代理池
  • 6、分布式爬虫示例
  • 7、JS渲染方式采集数据,&# 34;htmlUnit&# 34; 方案
  • 8、JS渲染方式采集数据,&# 34;selenisum + phantomjs&# 34; 方案
  • 9、采集非Web页面,如JSON接口等,直接输出响应数据

    第一步:引入Maven依赖

  1. <dependency>
  2. <groupId>com.xuxueli</groupId>
  3. <artifactId>xxl-crawler</artifactId>
  4. <version>${最新稳定版}</version>
  5. </dependency>

第二步:定义 &# 34;PageVo/页面数据对象&# 34;(可选)

在此推荐两款工具,可以直观迅速的获取页面元素的Jquery cssQuery表达式。- 1、Chrome DevTools:首先定位元素位置,然后从Element选中选中元素,点击右键选择“Copy + Copy selector”即可;- 2、Jquery Selector Helper(Chrome插件):首先定位元素位置,然后从Element右侧打开Selector界面,然后定位元素即可;
  1. // PageSelect 注解:从页面中抽取出一个或多个VO对象;
  2. @PageSelect(cssQuery = &# 34;body&# 34;)
  3. public static class PageVo {
  4. @PageFieldSelect(cssQuery = &# 34;.blog-heading .title&# 34;)
  5. private String title;
  6. @PageFieldSelect(cssQuery = &# 34;# read&# 34;)
  7. private int read;
  8. @PageFieldSelect(cssQuery = &# 34;.comment-content&# 34;)
  9. private List<String> comment;
  10. // set get
  11. }

第三步:创建爬虫

  1. XxlCrawler crawler = new XxlCrawler.Builder()
  2. .setUrls(&# 34;https://my.oschina.net/xuxueli/blog&# 34;)
  3. .setWhiteUrlRegexs(&# 34;https://my\\.oschina\\.net/xuxueli/blog/\\d+&# 34;)
  4. .setThreadCount(3)
  5. .setPageParser(new PageParser<PageVo>() {
  6. @Override
  7. public void parse(Document html, Element pageVoElement, PageVo pageVo) {
  8. // 解析封装 PageVo 对象
  9. String pageUrl = html.baseUri();
  10. System.out.println(pageUrl + &# 34;:&# 34; + pageVo.toString());
  11. }
  12. })
  13. .build();

第四步:启动爬虫

  1. crawler.start(true);