我正在努力获取美国各地特定商品的价格。该网站有一个文本框,您可以在其中输入状态并更新价格,但URL保持不变,我最近发现这意味着它是动态的。我正试图用以下代码来提高价格:
from bs4 import BeautifulSoup
import requests
source = requests.get('https://www.sunbeltrentals.com/equipment/detail/1255/0350140/7500lb-mini-excavator/').text
soup = BeautifulSoup(source, 'lxml')
# Finding the equipment name and printing it
name_article = soup.find('div', id = 'equipment-catalog-page-container')
# This pricing is based off of typing "NC" into the search box
equipment_name = name_article.h1.text
print(equipment_name)
for price_article in soup.find_all('div', class_ = 'info--price'):
equipment_price = price_article.text
print(equipment_price)
输出为:
7,500lb Mini Excavator
Online Rate:
1 Day: {{RateDaily | toCurrency}} {{Currency}}
1 Week: {{RateWeekly | toCurrency}} {{Currency}}
4 Weeks: {{RateMonthly | toCurrency}} {{Currency}}
开发人员工具上的双花括号(以及括号内的内容)是数字和货币类型,但我正在尝试将其刮去,以便能够看到实际的数字。我相信我调用的URL使用的是用Javascript更新的占位符
我希望得到的输出示例: 1天:500美元 1周:1000美元 4周:2000美元
我查看了开发人员工具,当您输入位置时,网络会向这些URL发出3个单独的post请求:
https://www.sunbeltrentals.com/ccdata/user/setshoppinglocation/https://www.sunbeltrentals.com/equipment/getuserequipmentviewdata/
https://www.sunbeltrentals.com/ccdata/rates/getrates
当我分别加载这些站点时,我会被发送到一个错误页面(中间的页面除外),但在开发人员工具预览中,它会显示正确的数字,因此我假设涉及cookie(?)。我需要发送这3个post请求对吗?我将如何发送这些请求/将其构建到我的代码中,以便它显示正确的定价信息?这是我的第一个真正的python项目,所以我不确定我是以艰难的方式完成的,还是问了正确的问题
目前没有回答
相关问题 更多 >
编程相关推荐