Vik*_*tor 1 python beautifulsoup request
我刚开始学习 Python 并面临这个问题。Trued 从亚马逊解析价格并将其打印到控制台。
这是我的代码:
import requests, bs4
def getAmazonPrice(productUrl):
res = requests.get(productUrl)
res.raise_for_status()
soup = bs4.BeautifulSoup(res.text, 'html.parser')
elems = soup.select('#addToCart > a > h5 > div > div.a-column.a-span7.a-text-right.a-span-last > span.a-size-medium.a-color-price.header-price')
return elems[0].text.strip()
price = getAmazonPrice('http://www.amazon.com/Automate-Boring-Stuff-Python-Programming/dp/1593275994/ref=sr_1_2?ie=UTF8&qid=1460386052&sr=8-2&keywords=python+book')
print('The price is ' + price)
Run Code Online (Sandbox Code Playgroud)
错误信息:
回溯(最近一次调用):文件“D:/Code/Python/Basic/webBrowser-Module.py”,第 37 行,在 price = getAmazonPrice(' http://www.amazon.com/Automate-Boring-Stuff -Python-Programming/dp/1593275994/ref=sr_1_2?ie=UTF8&qid=1460386052&sr=8-2&keywords=python+book ') 文件“D:/Code/Python/Basic/webBrowser-Module.py”,第 30 行,在getAmazonPrice res.raise_for_status() 文件“C:\Python33\lib\requests\models.py”,第 844 行,在 raise_for_status 中引发 HTTPError(http_error_msg, response=self) requests.exceptions.HTTPError:503 服务器错误:服务不可用 url : http://www.amazon.com/Automate-Boring-Stuff-Python-Programming/dp/1593275994/ref=sr_1_2?ie=UTF8&qid=1460386052&sr=8-2&keywords=python+book
进程以退出代码 1 结束
通过提供User-Agent标题来假装是一个真正的浏览器可以解决这个特定问题:
res = requests.get(productUrl, headers={
"User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.110 Safari/537.36"
})
Run Code Online (Sandbox Code Playgroud)
您还需要调整您的 CSS 选择器。例如,.header-price会为您提供页面上的所有价格(在这种情况下为非主要价格和主要价格)。
| 归档时间: |
|
| 查看次数: |
3432 次 |
| 最近记录: |