0
我目前正在从Udemy的Python教程(总新手到Python)学习。 我目前在一个美丽的汤部分,我们正在忙于练习,以刮除作者在亚马逊书上的价格。 我的代码如下:Python - 美丽的汤选择只返回[]
import bs4, requests
url = 'https://www.amazon.com/Automate-Boring-Stuff-Python-Programming/dp/1593275994/'
headers = {'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36'}
response = requests.get(url, headers=headers)
response.raise_for_status()
soup = bs4.BeautifulSoup(response.text, 'html.parser')
soup.select('#addToCart > a > h5 > div > div.a-column.a-span4.a-text-right.a-span-last > span.a-size-medium.a-color-price.header-price')
当我检查价格元素的路径,我可以看到这一点:
<span class="a-size-medium a-color-price header-price">
$25.45
</span>
然而,当我复制和由soup.select贴吧并运行python命令,我只返回一个[]即2个方括号。我应该得到第二个代码框的内容。
更新:在我输入问题期间,它确实正确显示了结果,框中的内容为$ 25.45,但是5分钟后它返回仅获取[]括号的结果。我在一个代理之后,并且没有通过代理尝试,结果没有变化。我在做response.raise_for_status()时没有收到任何错误。请有人帮忙吗?
(请记住,我不打算屏幕刮任何商业网站在那里,我非常希望我的学习收获应用到室内场景)
谢谢!
谢谢你,这并不工作 –
soup.select( '搭设尺寸-medium.a色 - price.header价格')也为我工作 –