资源简介
自己写的京东 苏宁 商品Java爬虫 用jsoup httpClient
代码片段和文件信息
package com.yxg.crawler;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.apache.commons.lang3.StringUtils;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.objectMapper;
import com.fasterxml.jackson.databind.node.ArrayNode;
import com.yxg.crawler.pojo.Item;
/**
*
* 爬虫程序入口
*/
public class jdMain {
public static final String URL = “http://list.jd.com/list.html?cat=9987653655&page={page}&trans=1&JL=6_0_0&ms=5#J_main“;
private static final objectMapper MAPPER = new objectMapper();
public static void main(String[] args) throws Exception {
start();
}
public static void start() throws Exception {
// 给入口url
Integer totalPage = getTotalPage();
for (int i = 1; i < totalPage; i++) {
System.out.println(“当前执行文件“ + i + “/“ + totalPage);
String url = StringUtils.replace(URL “{page}“ ““ + i);
doStart(url);
break;
}
}
public static void doStart(String url) throws Exception {
String content = doGet(url);
// 变成Document
Document document = Jsoup.parse(content);
Elements ems = document.select(“#plist li.gl-item“);
// List- items = new ArrayList
- ();
Map items = new HashMap();
for (Element em : ems) {
// 获取id
String id = em.select(“.gl-i-wrap“).attr(“data-sku“);
// 获取名称
String name = em.select(“.p-name a em“).text();
// 获取图片
String imgage = em.select(“.gl-i-wrap >.p-img > a >img“).attr(“src“)
.replace(“//“ ““);
// 构造商品
Item item = new Item();
item.setId(Long.valueOf(id));
item.settitle(name);
item.setImage(imgage);
items.put(item.getId() item);
}
// 添加id 要以这个格式 J_3466744
List strIds = new ArrayList();
for (Long id : items.keySet()) {
strIds.add(“J_“ + id);
}
// 获取商品的价格StringUtils.join([1 2 3] ‘;‘) = “1;2;3“
String priceUrl = “http://p.3.cn/prices/mgets?type=1&area=19_1607_3155_0&skuIds=“
+ StringUtils.join(strIds ““);
String priceDate = doGet(priceUrl);
// 解析json
ArrayNode arrayNode = (ArrayNode) MAPPER.readTree(priceDate);
for (JsonNode jsonNode : arrayNode) {
Long id = Long.valueOf(StringUtils.substringAfter(
jsonNode.get(“id“).asText() “_“));
// 利用map 将price 回填 高明
Long price = jsonNode.get(“p“).asLong();
items.get(id).setPrice(price);
}
// 打印商品
for (Item item : items.values()) {
System.out.println(item.toString());
}
}
/**
* 获取总页数
*
* @return
* @throws Exception
*/
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 703 2016-09-06 09:44 yxg-jd-crawler\.classpath
文件 566 2016-09-05 17:31 yxg-jd-crawler\.project
文件 664 2016-09-06 09:44 yxg-jd-crawler\.settings\org.eclipse.jdt.core.prefs
文件 90 2016-09-05 17:31 yxg-jd-crawler\.settings\org.eclipse.m2e.core.prefs
文件 2874 2016-09-06 16:49 yxg-jd-crawler\pom.xm
文件 4374 2016-09-07 15:25 yxg-jd-crawler\src\main\java\com\yxg\crawler\jdMain.java
文件 1948 2016-09-07 15:17 yxg-jd-crawler\src\main\java\com\yxg\crawler\pojo\Item.java
文件 4781 2016-09-07 15:15 yxg-jd-crawler\src\main\java\com\yxg\crawler\suniMain.java
文件 6698 2016-09-07 15:25 yxg-jd-crawler\target\classes\com\yxg\crawler\jdMain.class
文件 2656 2016-09-07 15:17 yxg-jd-crawler\target\classes\com\yxg\crawler\pojo\Item.class
文件 6747 2016-09-07 15:15 yxg-jd-crawler\target\classes\com\yxg\crawler\suniMain.class
文件 111 2016-09-07 09:44 yxg-jd-crawler\target\classes\me
文件 276 2016-09-07 15:25 yxg-jd-crawler\target\classes\me
文件 2874 2016-09-07 15:25 yxg-jd-crawler\target\classes\me
目录 0 2016-09-07 15:31 yxg-jd-crawler\src\main\java\com\yxg\crawler\pojo
目录 0 2016-09-07 15:31 yxg-jd-crawler\src\main\java\com\yxg\crawler
目录 0 2016-09-07 15:31 yxg-jd-crawler\target\classes\com\yxg\crawler\pojo
目录 0 2016-09-07 15:31 yxg-jd-crawler\target\classes\me
目录 0 2016-09-07 15:31 yxg-jd-crawler\src\main\java\com\yxg
目录 0 2016-09-07 15:31 yxg-jd-crawler\target\classes\com\yxg\crawler
目录 0 2016-09-07 15:31 yxg-jd-crawler\target\classes\me
目录 0 2016-09-07 15:31 yxg-jd-crawler\src\main\java\com
目录 0 2016-09-07 15:31 yxg-jd-crawler\target\classes\com\yxg
目录 0 2016-09-07 15:31 yxg-jd-crawler\target\classes\me
目录 0 2016-09-07 15:31 yxg-jd-crawler\src\main\java
目录 0 2016-09-05 17:31 yxg-jd-crawler\src\main\resources
目录 0 2016-09-05 17:31 yxg-jd-crawler\src\test\java
目录 0 2016-09-05 17:31 yxg-jd-crawler\src\test\resources
目录 0 2016-09-07 15:31 yxg-jd-crawler\target\classes\com
目录 0 2016-09-07 15:31 yxg-jd-crawler\target\classes\me
............此处省略11个文件信息
相关资源
- 用Java写的一个简单爬虫,爬取京东图
- java DHT爬虫 重构并加了注释 修复了一
- java DHT爬虫 重构并加了完整的注释 修
- java DHT爬虫
- Java爬虫获取网页表格数据保存到MyS
- Crawler爬虫软件,轻松获取网络资源
- Java爬虫完整.zip
- 自动下单工具Java,已在京东商城验证
- java实现爬取指定网站的数据源码
- 主题网络爬虫
- java简单网络爬虫
- 爬虫jsp获取网页源码
- java 实现简单爬虫,爬取图片
- 很简易的java爬虫 可以爬取携程的航班
- 一个简单的java网络蜘蛛程序,非常适
- Java 爬虫图片
- java利用多线程爬虫查询快递100物流信
- 百度贴吧java爬虫
- JAVA爬虫批量网页文件
- JAVA爬虫项目源代码
- 基于java爬取网络图片并且保存到本地
- 网络爬虫 Java实现原理
- Java网络爬虫及正文提取
- 京东自动下单2
- Java爬虫项目
- java小说网站爬虫
- Java WebSocket爬虫
- 最新新浪微博爬虫程序Java版 2015
- webmagic修复HTTPS下无法抓取只支持TLS
- 2017统计局区划编码爬虫
评论
共有 条评论