利用python做一个快递价格计算器,根据网络上顺丰快递在全国各地的价格,输入地区和重量,输出所需价格
时间: 2024-03-31 09:37:37 浏览: 10
好的,这是一个很好的问题。我们可以通过爬取顺丰快递的网站来获取价格信息,然后使用Python编写一个程序来计算价格。下面是一个简单的实现。
首先,我们需要安装requests和BeautifulSoup库,这两个库可以帮助我们获取网页内容并解析HTML。
```python
pip install requests
pip install beautifulsoup4
```
然后,我们需要爬取顺丰快递网站上的价格信息。在这里,我使用了一个第三方网站 www.sf-express.com 来获取这些信息。我们可以通过输入目的地和重量来获取价格。
```python
import requests
from bs4 import BeautifulSoup
def get_price(destination, weight):
url = 'http://www.sf-express.com/sf-service-web/service/rate/getRateByWeightOrVolume.action'
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36',
'Referer': 'http://www.sf-express.com/cn/sc/delivery_step/enquiry/quote.html'
}
data = {
'weight': weight,
'destination': destination,
'lang': 'cn',
'origin': 'CN'
}
response = requests.post(url, headers=headers, data=data)
soup = BeautifulSoup(response.text, 'html.parser')
price = soup.find('div', {'class': 'price'}).text
return price
```
在这个函数中,我们首先定义了一个URL和一些请求头。然后,我们创建了一个数据字典来包含我们的目的地和重量信息。接下来,我们使用requests.post()方法发送POST请求,并将响应结果传递给BeautifulSoup对象进行解析。最后,我们使用find()方法来查找价格,并将其返回。
最后,我们可以编写一个简单的命令行程序来与用户交互,并使用上面的函数来计算价格。下面是一个示例:
```python
while True:
destination = input('请输入目的地:')
weight = input('请输入重量:')
price = get_price(destination, weight)
print('价格为:{}'.format(price))
choice = input('是否继续?(Y/N)')
if choice.upper() == 'N':
break
```
在这个程序中,我们使用while循环来让用户可以连续查询价格。每次循环,我们会提示用户输入目的地和重量,并使用get_price()函数来计算价格。然后,我们将价格输出给用户,并询问他们是否继续查询。如果用户输入N,则退出循环。
以上就是一个简单的快递价格计算器的实现。当然,这只是一个示例程序,你可以根据需要进行修改和改进。