【发布时间】:2022-01-09 20:57:28
【问题描述】:
我尝试编写一些代码来查找和打印特定书籍的价格,但是当我运行代码时,它返回了£54.23。
 是什么?如何让它消失?
据我了解,我应该复制 soup.select 的 CSS 路径,但由于此选项未显示在 chrome 上,因此我复制了选择器。这能对Â负责吗?
这是我的 Python 代码:
import requests
from bs4 import BeautifulSoup
user_agent = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Safari/537.36'
headers = {'User-Agent': user_agent}
res_obj = requests.get('http://books.toscrape.com/')
res_obj.raise_for_status()
soup = BeautifulSoup(res_obj.text, 'html.parser')
sapiens_price = soup.select('#default > div > div > div > div > section > div:nth-child(2) > ol > li:nth-child(5) > article > div.product_price > p.price_color')
print(sapiens_price[0].text)
【问题讨论】:
-
这是我可以复制的选择器和其他选项的屏幕截图的链接。由于某种原因,我无法将链接作为附件发布。
-
您可能使用错误的文本编码解码文档。将文档在
content-typehttp 响应标头中声明的编码与您用于解码的任何编码进行比较。 -
内容类型为 text/html 但内容编码为 gzip。由于我的程序使用 Python 3.10.0,看来网页必须使用 utf-8 解码。
标签: python python-3.x web-scraping