ElasticSearch高亮搜索(基于Java的工具类<Jsoup依赖>/Python爬取京东)
由于原始代码是基于Java的,并且使用了Jsoup库来解析HTML,而Jsoup不适合用于解析JavaScript渲染的页面,因此无法直接应用于此场景。
对于Python爬取京东的需求,以下是一个简单的Python代码示例,使用requests和BeautifulSoup库来获取商品信息并保存到Elasticsearch中。
import requests
from bs4 import BeautifulSoup
from elasticsearch import Elasticsearch
# 初始化Elasticsearch客户端
es = Elasticsearch("http://localhost:9200")
# 京东商品URL
url = "https://item.jd.com/100012043978.html"
# 发送HTTP GET请求获取页面内容
response = requests.get(url)
# 检查请求是否成功
if response.status_code == 200:
# 使用BeautifulSoup解析页面
soup = BeautifulSoup(response.text, 'html.parser')
# 提取商品名称
product_name = soup.find('div', class_='sku-name').text.strip()
# 提取商品价格
product_price = soup.find('div', class_='price').text.strip()
# 创建一个Elasticsearch文档
doc = {
'name': product_name,
'price': product_price,
'url': url
}
# 将文档索引到Elasticsearch
res = es.index(index="jd_products", document=doc)
print(res['result'])
else:
print("Failed to retrieve the webpage")
确保Elasticsearch服务正在运行,并且有一个名为jd_products
的索引。这段代码会发送一个HTTP GET请求到指定的京东商品URL,解析返回的HTML内容,提取商品名称和价格,并将这些信息保存到Elasticsearch中。
评论已关闭