改了下京东爬取例子 , 我喜欢一个爬虫的风格 看了很多什么责任链实现,但是我没有这么做,而是选择同个 用if else 来判断url 并爬取内容
保存到static map 里面 最后就能入库了 jsonPath 语法 非常方便 原来写jsonObject的解析方法很慢

package com.cn.hanbo.spider;import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;import us.codecraft.webmagic.Page;
import us.codecraft.webmagic.Site;
import us.codecraft.webmagic.Spider;
import us.codecraft.webmagic.processor.PageProcessor;public class GithubRepoPageProcessor implements PageProcessor {private Site site = Site.me().setRetryTimes(3).setSleepTime(100);private List<String> idlist = null;public static Map<String,String> processmap = new HashMap<String,String>();public static int q = 0;@Overridepublic void process(Page page) {if (page.getUrl().regex("http://p\\.3\\.cn/prices/mgets\\?type=1&skuIds=J_\\d+").match()) {System.err.println("jjjjjjjjjjjjjjjjjiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii");String price = page.getJson().jsonPath("$..p").toString();System.out.println(price);processmap.put("pricew"+q, price);//page.putField("pricew"+q, price);q++;} else {List<String> list = page.getHtml().links().regex("(http://channel\\.jd\\.com/1713-3261.html)").all();System.out.println("list" + list.toString());if (list == null) {System.out.println("nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn");}for (String string : list) {System.err.println("ff" + string);}// page.addTargetRequests(list);// page.putField("author",// page.getUrl().regex("https://p4psearch\\.1688\\.com\\/p4p114/p4psearch/offer2\\.htm?*").toString());List<String> jlist = page.getHtml().xpath("//div[@class=\'p-img']/html()").all();idlist = page.getHtml().xpath("//div/strong/@data-price-id").all();// http://www.cnblogs.com/momoka/articles/5417426.htmlList<String> names = new ArrayList<>();int i = 0;int j = 0;for (String string : jlist) {System.err.println(string);page.putField("name" + i, string);i++;}System.out.println("jlist---------------------size!" + jlist.size());if (page.getResultItems().get("name") == null) {// skip this pagepage.setSkip(true);}// page.addTargetRequests(list);// page.putField("readme",// page.getHtml().xpath("//div[@id='readme']/tidyText()"));String nametrue = page.getResultItems().get("name" + 1);String pricetrue = page.getResultItems().get("price" + 1);System.out.println("true" + nametrue);System.out.println("true" + pricetrue);int k = 0;for (String string : idlist) {//System.err.println(string);String url="http://p.3.cn/prices/mgets?type=1&skuIds=J_"+string;//String price = page.getJson().$("p").toString();Spider.create(new GithubRepoPageProcessor()).addUrl(url).thread(3).run();//System.err.println(price);page.putField("id" + k, string);System.out.println("idone"+string);k++;}//System.out.println(page.getResultItems().get("pricew"+1));System.err.println(processmap.get("pricew"+1));}}@Overridepublic Site getSite() {return site;}public static void main(String[] args) {Spider.create(new GithubRepoPageProcessor()).addUrl("http://channel.jd.com/1713-3261.html").thread(5).run();}
}

web magic 爬取京东 一个爬虫实现相关推荐

  1. python爬虫爬取京东_Python爬虫学习 爬取京东商品

    1. 本节目标 以抓取京东 App 的商品信息和评论为例,实现 Appium 和 mitmdump 二者结合的抓取.抓取的数据分为两部分:一部分是商品信息,我们需要获取商品的 ID.名称和图片,将它们 ...

  2. python+正则表达式爬取京东商品数据信息

    爬取数据的方式有很多种,正则表达式,scrapy,从接口中爬取动态网页的数据-今天我们讲的是用正则表达式来爬取京东一个大米商品的具体信息. 正则表达式的优点:可以精准的爬取我们想要的数据信息 缺点:爬 ...

  3. 一个scrapy框架的爬虫(爬取京东图书)

    我们的这个爬虫设计来爬取京东图书(jd.com). scrapy框架相信大家比较了解了.里面有很多复杂的机制,超出本文的范围. 1.爬虫spider tips: 1.xpath的语法比较坑,但是你可以 ...

  4. python爬取京东书籍_一个scrapy框架的爬虫(爬取京东图书)

    我们的这个爬虫设计来爬取京东图书(jd.com). scrapy框架相信大家比较了解了.里面有很多复杂的机制,超出本文的范围. 1.爬虫spider tips: 1.xpath的语法比较坑,但是你可以 ...

  5. 网络爬虫---用urllib模块爬取京东笔记本电脑的数据、并对其做一个可视化

    用urllib模块爬取京东笔记本电脑的数据.并对其做一个可视化 文章目录 用urllib模块爬取京东笔记本电脑的数据.并对其做一个可视化 一.前言 二.知识要求 三.过程分析 1.观察主页面和每个电脑 ...

  6. python 爬网站 实例_python爬虫实战:之爬取京东商城实例教程!(含源代码)

    前言: 本文主要介绍的是利用python爬取京东商城的方法,文中介绍的非常详细,下面话不多说了,来看看详细的介绍吧. 主要工具 scrapy BeautifulSoup requests 分析步骤 1 ...

  7. 爬虫利器Pyppeteer的介绍和使用 爬取京东商城书籍信息

    提起 selenium 想必大家都不陌生,作为一款知名的 Web 自动化测试框架,selenium 支持多款主流浏览器,提供了功能丰富的API 接口,经常被我们用作爬虫工具来使用.但是 seleniu ...

  8. 爬虫利器Pyppeteer的介绍和使用 爬取京东商城书籍信息!

    提起 selenium 想必大家都不陌生,作为一款知名的 Web 自动化测试框架,selenium 支持多款主流浏览器,提供了功能丰富的API 接口,经常被我们用作爬虫工具来使用.但是 seleniu ...

  9. python爬虫完整实例-python爬虫实战之爬取京东商城实例教程

    前言 本文主要介绍的是利用python爬取京东商城的方法,文中介绍的非常详细,下面话不多说了,来看看详细的介绍吧. 主要工具 scrapy BeautifulSoup requests 分析步骤 1. ...

最新文章

  1. Json 学习 JSONObject 和 JSONArray
  2. 只用一张训练图像进行图像的恢复
  3. Cortana 的谢幕,不一定是产品问题
  4. 什么数据库最适合数据分析师
  5. Elasticearch 查询详解 (二)
  6. 关于正则表达式匹配任意字符
  7. mysql第四章表单查询样题_查询mysql表单中前10条,然后在li中循环输出。
  8. 全国 省市 自治区的数据库sql生成
  9. Saiku Table展示数据合并bug修复(二十五)
  10. softmax函数与交叉熵损失函数
  11. JavaScript学习(五十七)— arguments对象
  12. java方法 将123转换成 “一百二十三”
  13. linux 分区100g整数,[转载]硬盘分区 整G 整数 法(从1g到200g最精确的整数分区)(转)...
  14. 各行业中英文简历自荐书模板
  15. springmvc/ssm框架详细图文解说流程图及运行原理_附源码
  16. 一些比较好用的网站整站下载工具
  17. 快手上用计算机打歌的名儿叫什么意思,快手起什么名字容易火?快手网名怎么起独特...
  18. 阻塞与非阻塞、同步与异步、I/O模型
  19. 24c02读程序C语言详解,24C02读写操作程序(C语言)
  20. 配置Cross-Origin的几种方法

热门文章

  1. 国庆去哪里玩比较好?
  2. 三星GT-I9300刷机
  3. Linux换源,换第三方源,安装输入法
  4. 通用能力及AI核心能力表现优异!合合信息智能文档处理系统(IDP)高评级通过中国信通院评估
  5. 笑傲江湖:完美解决205:您所选择的线路不存在问题
  6. 使用python-aiohttp爬取今日头条
  7. java读取zip中指定文件_java读取zip中指定文件
  8. 实例:用C#.NET手把手教你做微信公众号开发(22)--网页里通过OAuth获取用户openid
  9. 九州云出席数字化供应链线上研讨会,共话5G边缘计算新模式
  10. 高性能web服务器nginx(三)之源码搭建LNMP