java爬取京东商品脚本
时间: 2025-01-21 12:10:05 浏览: 49
### Java编写爬虫脚本获取京东商品数据示例
#### 使用HttpClient发送HTTP请求并接收响应
为了实现网络通信,可以利用Apache HttpClient库来构建HTTP GET请求,并处理来自服务器的响应。
```java
import org.apache.http.HttpResponse;
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;
public class JDProductCrawler {
public static String fetchPageContent(String url) throws Exception {
CloseableHttpClient httpClient = HttpClients.createDefault();
try {
HttpGet request = new HttpGet(url);
// 设置请求头信息模拟浏览器访问
request.addHeader("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64)");
HttpResponse response = httpClient.execute(request);
if (response.getStatusLine().getStatusCode() == 200) {
return EntityUtils.toString(response.getEntity(), "UTF-8");
} else {
throw new RuntimeException("Failed to get page content.");
}
} finally {
httpClient.close();
}
}
}
```
此部分展示了如何设置`HttpGet`实例以及执行实际的HTTP请求操作[^1]。
#### 利用Jsoup解析HTML文档提取所需信息
一旦获得了网页源码字符串形式的内容之后,则可借助于Jsoup来进行DOM树结构化表示,并从中抽取特定标签内的文本或其他属性值作为目标产品详情。
```java
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.select.Elements;
// 继续上面的方法...
Document doc = Jsoup.parse(fetchPageContent(url));
Elements items = doc.getElementsByClass("gl-item"); // 假设这是商品列表项所在的类名
for (Element item : items) {
Element titleElem = item.select(".p-name em").first(); // 获取标题元素
System.out.println(titleElem.text()); // 输出商品名称
Element priceElem = item.select(".p-price i").first(); // 获取价格元素
System.out.println(priceElem.text()); // 输出商品价格
}
```
上述代码片段说明了怎样运用Jsoup选取器语法定位到页面中的各个组件,并读取出它们内部的文字内容或数值型字段。
请注意,在真实环境中开发此类应用时还需要考虑更多因素比如异常处理机制、反爬策略应对措施等;另外也要遵循各网站的服务条款与法律法规限制条件。
阅读全文
相关推荐


















