尝试 运行 时终端显示 []
Terminal showing [] when trying to run
我正在关注我在 YouTube 上找到的价格跟踪器教程。但是,当我尝试在终端中执行“python main.py”时,它向我显示:
(venv) julia@Julias-Maccie-3 pythonProject1 % python main.py
[]
[]
(venv) julia@Julias-Maccie-3 pythonProject1 %
两个[]所在的地方,应该是给我看商品的价格和标题。
这是我的代码:
import requests
from bs4 import BeautifulSoup
URL = 'https://www.lookfantastic.nl/olaplex-no.3-hair-perfector-100ml/11416400.html'
headers = {"User-Agent": 'My user agent'}
page = requests.get(URL, headers=headers)
soup = BeautifulSoup(page.content, 'html.parser')
title = soup.find_all("div", class_="productName_title")
price = soup.find_all("div", class_="productPrice_price")
converted_price = price[0:4]
print(converted_price)
print(title)
有人知道怎么解决吗?
注意:我确实填写了我的用户代理。只是出于这个问题的目的将其删除
检查您的 soup
并调整您希望找到的标签名称:
title = soup.find_all("h1", class_="productName_title")
price = soup.find_all("p", class_="productPrice_price")
输出:
[<p class="productPrice_price" data-product-price="price">
€22,45
</p>, <p class="productPrice_price" data-product-price="price">
€22,45
</p>]
[<h1 class="productName_title" data-product-name="title">Olaplex No.3 Hair Perfector 100ml</h1>, <h1 class="productName_title" data-product-name="title">Olaplex No.3 Hair Perfector 100ml</h1>]
请注意,find_all()
会给你一个 ResultSet
,如果你只想获得第一手信息,请使用 find()
而不是
title = soup.find("h1", class_="productName_title").get_text(strip=True)
price = soup.find("p", class_="productPrice_price").get_text(strip=True)
converted_price = price[1:]
输出:
22,45
Olaplex No.3 Hair Perfector 100ml
我正在关注我在 YouTube 上找到的价格跟踪器教程。但是,当我尝试在终端中执行“python main.py”时,它向我显示:
(venv) julia@Julias-Maccie-3 pythonProject1 % python main.py
[]
[]
(venv) julia@Julias-Maccie-3 pythonProject1 %
两个[]所在的地方,应该是给我看商品的价格和标题。
这是我的代码:
import requests
from bs4 import BeautifulSoup
URL = 'https://www.lookfantastic.nl/olaplex-no.3-hair-perfector-100ml/11416400.html'
headers = {"User-Agent": 'My user agent'}
page = requests.get(URL, headers=headers)
soup = BeautifulSoup(page.content, 'html.parser')
title = soup.find_all("div", class_="productName_title")
price = soup.find_all("div", class_="productPrice_price")
converted_price = price[0:4]
print(converted_price)
print(title)
有人知道怎么解决吗?
注意:我确实填写了我的用户代理。只是出于这个问题的目的将其删除
检查您的 soup
并调整您希望找到的标签名称:
title = soup.find_all("h1", class_="productName_title")
price = soup.find_all("p", class_="productPrice_price")
输出:
[<p class="productPrice_price" data-product-price="price">
€22,45
</p>, <p class="productPrice_price" data-product-price="price">
€22,45
</p>]
[<h1 class="productName_title" data-product-name="title">Olaplex No.3 Hair Perfector 100ml</h1>, <h1 class="productName_title" data-product-name="title">Olaplex No.3 Hair Perfector 100ml</h1>]
请注意,find_all()
会给你一个 ResultSet
,如果你只想获得第一手信息,请使用 find()
而不是
title = soup.find("h1", class_="productName_title").get_text(strip=True)
price = soup.find("p", class_="productPrice_price").get_text(strip=True)
converted_price = price[1:]
输出:
22,45
Olaplex No.3 Hair Perfector 100ml