请选择 进入手机版 | 继续访问电脑版

苏苏网赚论坛

 找回密码
 立即注册
查看: 172|回复: 0

java写爬虫获取电商售价

[复制链接]
发表于 2019-6-19 13:52:45 | 显示全部楼层 |阅读模式
说起爬虫,大家总会联想到python,但是除了python,java一样可以完成爬虫工作。

思路:

通过打开浏览器,然后输入京东的官网,搜索到自己想要的东西,看看价格。

发现价格觉得不大合适你就先放在那里。过段时间再刷新一次。

那么这种方式,用程序来做也是这么个思路。 打开京东的网址,然后去找到价格,看看是不是我们想要的价格。

技术选型:承接上文的maven项目,我们用Jdk10自带的HttpClient去模拟浏览器的请求。用jsoup去分析html页面(需要引入jsoup的pom依赖)。

在页面上人工获取价格的方式如下图所示:

在pom.xml的 dependencies节点下添加:

<dependency>

<groupId>org.jsoup</groupId>

<artifactId>jsoup</artifactId>

<version>1.11.3</version>

</dependency>

jdk10 HttpClient相关用法参考:

<u>https://developer.oracle.com/java/jdk-http-client</u>

实现代码如下:

public static void main(String[] args) {

//我们想监控价格的商品url

String url = "https://item.m.jd.com/product/5444550.html";

HttpClient client = HttpClient.newHttpClient();

//构造我们的请求

HttpRequest request = HttpRequest.newBuilder()

.uri(URI.create(url))

.build();

try {

HttpResponse<byte[]> response = client.send(request, BodyHandler.asByteArray());

byte[] responseStr = response.body();

//对返回值进行解码

String str = new String(responseStr,"gbk");

//对页面的Html转换成java对象

Document doc = Jsoup.parse(str);

//通过id获取到对应的元素

Elements eles =doc.select("#priceSale");

String text = eles.get(0).text();

//输出元素的值,即我们想要的价格

System.out.println(text);

} catch (Exception e) {

e.printStackTrace();

}

}

注:因为使用到jdk10的实验室功能httpclient,所以需要在启动时加上jvm参数:

--add-modules=jdk.incubator.httpclient

程序的输出结果:

有兴趣的小伙伴可以自己试一试,以此程序为蓝本,可以扩展成一个全网比价的小程序,就可以便宜的买买买啦

爬虫代理IP提取地址:河马代理IP
热帖推荐
回复

使用道具 举报

广告合作|最大的网赚客中文交流社区!七年老站!

GMT+8, 2019-12-12 01:38 , Processed in 0.071300 second(s), 22 queries , Gzip On.

Powered by Discuz! X3.1 VIP版

© 2012-2019 苏苏网赚论坛 版权所有 | 7年老品牌

快速回复 返回顶部 返回列表