python怎么利用Xpath抓取京东网商品信息
一、准备工作
在利用XPath抓取京东网商品信息之前,我们需要先安装Python的XPath库和相关依赖库。可以通过pip命令进行安装,具体安装命令如下:
pip install lxml二、获取页面内容
开始进行商品信息的抓取之前,我们需要先获取京东网商品页面的HTML内容。可以使用Python的requests库发送GET请求来获取页面内容,具体示例代码如下:
import requests
def get_page_content(url):
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36'
}
response = requests.get(url, headers=headers)
if response.status_code == 200:
return response.text
else:
return None
url = 'https://www.jd.com'
page_content = get_page_content(url)
print(page_content)三、使用XPath抓取商品信息
获取到页面内容后,我们可以利用xpath库的XPath功能来进行商品信息的抓取。以下是一些基本的XPath语法以及示例代码:
1. 根据节点选择器抓取单个元素
from lxml import etree
tree = etree.HTML(page_content)
title = tree.xpath('//h1[@class="title"]/text()')[0]
print(title)2. 根据节点选择器抓取多个元素
from lxml import etree
tree = etree.HTML(page_content)
prices = tree.xpath('//span[@class="price"]/text()')
for price in prices:
print(price)3. 根据属性选择器抓取元素
from lxml import etree
tree = etree.HTML(page_content)
img_url = tree.xpath('//img[@src="https://example.com/img.jpg"]/@alt')[0]
print(img_url)四、完整示例代码
下面是一个完整的示例代码,展示了如何利用XPath抓取京东网商品信息:
import requests
from lxml import etree
def get_page_content(url):
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36'
}
response = requests.get(url, headers=headers)
if response.status_code == 200:
return response.text
else:
return None
def parse_page_content(page_content):
tree = etree.HTML(page_content)
titles = tree.xpath('//h3[@class="p-name"]/a/@title')
prices = tree.xpath('//div[@class="p-price"]/strong/i/text()')
for title, price in zip(titles, prices):
print('商品标题:', title)
print('商品价格:', price)
url = 'https://www.jd.com'
page_content = get_page_content(url)
parse_page_content(page_content)以上就是利用XPath抓取京东网商品信息的方法和示例代码,通过XPath的选择器和语法,可以方便地实现对指定节点的抓取和提取所需信息。
猜您想看
-
linux下切换用户出现This account is currently not available怎么解决
问题描述在Li...
2023年07月23日 -
注入工具sqlmap如何指定位置注入和优化性能
一、指定注入位...
2023年05月26日 -
如何通过nntool建立神经网络
使用nntoo...
2023年07月22日 -
怎么解决nginx调用上游服务超时问题
如何解决Ngi...
2023年07月21日 -
如何在小米手机上禁用应用自启动
如何在小米手机...
2023年04月15日 -
如何配置 LEDE 路由器防火墙?
如何配置 LE...
2023年04月17日