web magic 爬取京东 一个爬虫实现
改了下京东爬取例子 , 我喜欢一个爬虫的风格 看了很多什么责任链实现,但是我没有这么做,而是选择同个 用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 爬取京东 一个爬虫实现相关推荐
- python爬虫爬取京东_Python爬虫学习 爬取京东商品
1. 本节目标 以抓取京东 App 的商品信息和评论为例,实现 Appium 和 mitmdump 二者结合的抓取.抓取的数据分为两部分:一部分是商品信息,我们需要获取商品的 ID.名称和图片,将它们 ...
- python+正则表达式爬取京东商品数据信息
爬取数据的方式有很多种,正则表达式,scrapy,从接口中爬取动态网页的数据-今天我们讲的是用正则表达式来爬取京东一个大米商品的具体信息. 正则表达式的优点:可以精准的爬取我们想要的数据信息 缺点:爬 ...
- 一个scrapy框架的爬虫(爬取京东图书)
我们的这个爬虫设计来爬取京东图书(jd.com). scrapy框架相信大家比较了解了.里面有很多复杂的机制,超出本文的范围. 1.爬虫spider tips: 1.xpath的语法比较坑,但是你可以 ...
- python爬取京东书籍_一个scrapy框架的爬虫(爬取京东图书)
我们的这个爬虫设计来爬取京东图书(jd.com). scrapy框架相信大家比较了解了.里面有很多复杂的机制,超出本文的范围. 1.爬虫spider tips: 1.xpath的语法比较坑,但是你可以 ...
- 网络爬虫---用urllib模块爬取京东笔记本电脑的数据、并对其做一个可视化
用urllib模块爬取京东笔记本电脑的数据.并对其做一个可视化 文章目录 用urllib模块爬取京东笔记本电脑的数据.并对其做一个可视化 一.前言 二.知识要求 三.过程分析 1.观察主页面和每个电脑 ...
- python 爬网站 实例_python爬虫实战:之爬取京东商城实例教程!(含源代码)
前言: 本文主要介绍的是利用python爬取京东商城的方法,文中介绍的非常详细,下面话不多说了,来看看详细的介绍吧. 主要工具 scrapy BeautifulSoup requests 分析步骤 1 ...
- 爬虫利器Pyppeteer的介绍和使用 爬取京东商城书籍信息
提起 selenium 想必大家都不陌生,作为一款知名的 Web 自动化测试框架,selenium 支持多款主流浏览器,提供了功能丰富的API 接口,经常被我们用作爬虫工具来使用.但是 seleniu ...
- 爬虫利器Pyppeteer的介绍和使用 爬取京东商城书籍信息!
提起 selenium 想必大家都不陌生,作为一款知名的 Web 自动化测试框架,selenium 支持多款主流浏览器,提供了功能丰富的API 接口,经常被我们用作爬虫工具来使用.但是 seleniu ...
- python爬虫完整实例-python爬虫实战之爬取京东商城实例教程
前言 本文主要介绍的是利用python爬取京东商城的方法,文中介绍的非常详细,下面话不多说了,来看看详细的介绍吧. 主要工具 scrapy BeautifulSoup requests 分析步骤 1. ...
最新文章
- Json 学习 JSONObject 和 JSONArray
- 只用一张训练图像进行图像的恢复
- Cortana 的谢幕,不一定是产品问题
- 什么数据库最适合数据分析师
- Elasticearch 查询详解 (二)
- 关于正则表达式匹配任意字符
- mysql第四章表单查询样题_查询mysql表单中前10条,然后在li中循环输出。
- 全国 省市 自治区的数据库sql生成
- Saiku Table展示数据合并bug修复(二十五)
- softmax函数与交叉熵损失函数
- JavaScript学习(五十七)— arguments对象
- java方法 将123转换成 “一百二十三”
- linux 分区100g整数,[转载]硬盘分区 整G 整数 法(从1g到200g最精确的整数分区)(转)...
- 各行业中英文简历自荐书模板
- springmvc/ssm框架详细图文解说流程图及运行原理_附源码
- 一些比较好用的网站整站下载工具
- 快手上用计算机打歌的名儿叫什么意思,快手起什么名字容易火?快手网名怎么起独特...
- 阻塞与非阻塞、同步与异步、I/O模型
- 24c02读程序C语言详解,24C02读写操作程序(C语言)
- 配置Cross-Origin的几种方法