资源简介
自己写的京东 苏宁 商品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个文件信息
相关资源
- Android项目源码仿京东商城客户端
- 基于http的Java爬虫爬取百度新闻
- Android 仿京东地址地区选择器 支持三
- 微信公众号爬取数据
- 基于JAVA技术爬虫爬网站图片设计与实
- android listview+fragment实现仿京东分类
- Android 高仿京东商城demo源码
- 仿淘宝、京东历史搜索效果
- 用java实现爬虫抓取网页中的表格数据
- 基于强智科技教务系统学生成绩爬虫
- android 仿京东商品三级分类简单
- 京东钱包网银在线接口
- java网络爬虫搜索引擎
- jsp搜索引擎完整源码自带网络爬虫功
- Android项目源码仿京东商城客户端最新
- 京东商城Open API通用接口源码及开发轻
- Android仿京东左右分类
- 拼多多、京东sdk.jar
- SQL注入漏洞检测原型工具
- 仿京东全套jsp模板
- java地址转换经纬度
- 用java实现爬虫抓取网页中的表格数据
- java实现的主题爬虫
- 基于java的文本搜索引擎的设计与实现
- 爬虫工具,用于获取平行语料
- 知乎爬虫最新版
- 网络爬虫 PDF
- Java+爬虫+爬取图片+完整案例+源码
- 基于java实现网络爬虫
- 京东商城网站式电子商城前端后台。
评论
共有 条评论