利用python做一个快递价格计算器,根据顺丰快递在全国各地的价格,输入地区和重量,输出所需价格
时间: 2024-03-31 10:37:17 浏览: 18
好的,这是一个很好的问题。我们可以通过爬取顺丰快递的网站来获取价格信息,然后使用Python编写一个程序来计算价格。下面是一个简单的实现。
首先,我们需要安装requests和BeautifulSoup库,这两个库可以帮助我们获取网页内容并解析HTML。
```python
pip install requests
pip install beautifulsoup4
```
然后,我们需要爬取顺丰快递网站上的价格信息。我们可以通过输入目的地和重量来获取价格。
```python
import requests
from bs4 import BeautifulSoup
def get_price(destination, weight):
url = 'https://www.sf-express.com/cn/sc/delivery_step/enquiry/quote.html'
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': 'https://www.sf-express.com/cn/sc/delivery_step/enquiry/quote.html'
}
data = {
'fromProvince': '广东省',
'fromCity': '深圳市',
'fromArea': '南山区',
'fromCompany': '',
'fromAddress': '',
'fromPostCode': '',
'toProvince': '',
'toCity': '',
'toArea': '',
'toCompany': '',
'toAddress': '',
'toPostCode': '',
'payType': 'SHIPPER',
'expressType': '1',
'needReturnTrackingNo': 'N',
'weight': weight,
'length': '',
'width': '',
'height': '',
'count': '1',
'taxPayType': '1',
'custId': '',
'isMobile': 'N',
'extendField1': '',
'extendField2': '',
'extendField3': '',
'extendField4': '',
'extendField5': '',
'lang': 'cn',
'region': destination,
'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,则退出循环。
以上就是一个简单的快递价格计算器的实现。当然,这只是一个示例程序,你可以根据需要进行修改和改进。