如何从html中提取价格并存储到变量中?

2024-04-24 00:52:52 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图从这些裤子中提取价格,并将其放入一个变量中。我看到其他的解决方案在html中有类似“itemprop”的东西,但我的却没有

这里是一个屏幕截图: enter image description here

以下是我目前掌握的代码:

import requests
import time
from bs4 import BeautifulSoup
import json

url = 'https://www.urbanoutfitters.com/search?q=cargo%20pant&sayt=true'
headers = {'User-Agent':'Mozilla/5.0'}
response = requests.get(url, headers = headers)
response.status_code
print (response)

soup = BeautifulSoup(response.content,'html.parser')


page = requests.get("https://www.patagonia.ca/shop/mens-hard-shell-jackets-vests")
soup = BeautifulSoup(page.content, 'html.parser')

div_price = []
# Loop on elements
for pant in soup.find_all('p', {'class':'c-pwa-product-price c-pwa-product-tile__price'}):
    span_price = pant.find('span', {'aria-label': 'class'})
    if span_price:
        div_price.append(span_price.get('content'))
print(div_price)

谢谢


Tags: httpsimportdivurlgetresponsehtmlwww
1条回答
网友
1楼 · 发布于 2024-04-24 00:52:52

一些改进:

  1. 您的soup变量已被第二页替换
  2. 您可以使用soup.find_all('span', {'class':'c-pwa-product-price__current'})直接搜索价格

如下代码所示:

import requests
import time
from bs4 import BeautifulSoup
import json

url = 'https://www.urbanoutfitters.com/search?q=cargo%20pant&sayt=true'
headers = {'User-Agent':'Mozilla/5.0'}
response = requests.get(url, headers = headers)
soup = BeautifulSoup(response.content,'html.parser')


# page = requests.get("https://www.patagonia.ca/shop/mens-hard-shell-jackets-vests")
# print(page.text)
# soup = BeautifulSoup(page.content, 'html.parser')

div_price = []
# Loop on elements
for pant in soup.find_all('span', {'class':'c-pwa-product-price__current'}):
    div_price.append(pant.text)
print(div_price)

结果:

['$59.00', '$149.00', '$69.00', '$69.00', '$69.00', '$79.00', '$69.00', '$69.00', '$184.00', '$59.00', '$54.00', '$54.00', '$69.00', '$99.00', '$85.00', '$59.00', '$69.00', '$49.00', '$74.00', '$64.00', '$160.00', '$180.00', '$55.00', '$85.00', '$125.00', '$79.00', '$59.00', '$110.00', '$69.00', '$19.99', '$189.99', '$19.99', '$39.99', '$69.00', '$49.00', '$59.00', '$59.00', '$69.00', '$49.00', '$29.99', '$79.00', '$79.00', '$79.00', '$95.00', '$79.00', '$79.00', '$74.00', '$69.00', '$79.00', '$69.00', '$64.00', '$74.00', '$190.00', '$64.00', '$29.99', '$96.00', '$320.00', '$96.00', '$49.99', '$123.99', '$69.99', '$19.99', '$39.99', '$19.99', '$19.99', '$29.99', '$59.99', '$29.99', '$39.99', '$19.99', '$74.99', '$29.99', '$129.99']

相关问题 更多 >