Python爬取指定重量的快递价格

目录

  • 一、获取查询接口
  • 二、获取相关数据
  • 三、编写爬虫脚本
  • 四、查看查询效果

背景:现在这个时代,快递横飞。我们想寄一个快递,给出的选择也是多种多样的(根据快递的大小、送达的时间、寄送的距离及价格、公司服务质量,来选择不同的快递[物流]公司)。往往合适的事情选择合适的方式,这才是最完美的。

需求:想寄一个大概 20 kg左右的包裹,不知道选择哪个快递公司最合适,有个各大快递公司快递信息以及价格目录表就爽歪歪了。

思路:获取各大快递物流公司查询接口,传入寄件地和目的地,以及重量。解析查询的返回结果,打印相关信息就ok了。

撸起袖子干,找到了一个各大快递公司运费价格查询的网址 快递窝(窃喜~~由于本人比较懒,省了好多事)【若有违反这个网站相关规定,请立即与本人联系】

一、获取查询接口

F12 打开调试工具,选择NetWork选项,在对应输入框内输入相关信息,点击结果。查看 Request URL

二、获取相关数据

NetWork中查看 From Data数据,分析数据所代表的含义

三、编写爬虫脚本

使用Python3.6编写脚本

"""
@author  : zzw
@time    : 2018/5/10 21:55
@file    : queryprice.py
"""

import urllib.request
import urllib.parse
import json
import re
import requests

class QueryPrice(object):
    # 初始化: who 对应的快递公司id; weight寄出物品的重量kg
    def __init__(self, who, weight):
        self.who = int(who)
        self.weight = int(weight)
        self.url = "http://www.kuaidiwo.cn/freight/ajaxjg.php"

    # 获取服务器响应
    def get_response(self):
        headers = {
            'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) Chrome/63.0.3239.26 QQBrowser/10.0.1125.400'
        }
        data = {
            'expid': self.who,
            'provinceid': 9,    # 上海id
            'cityid': 155,      # 浦东id
            'toprovinceid': 1,  # 北京id
            'tocityid': 41,     # 朝阳id
            'weight': self.weight
        }
        # 使用requests 更加简洁
        html = requests.post(self.url, data, headers).text
        '''data = urllib.parse.urlencode(data, encoding='utf-8') # 将data数据编码为 utf-8
        req = urllib.request.Request(self.url, data, headers)  # 封装请求信息
        resp = urllib.request.urlopen(req)  # 发送请求
        html = resp.read().decode('utf-8') # 将utf-8解码为 Unicode
        '''
        # print(html)
        return html

    # 解析返回的结果
    def get_result(self):
        first = '上海浦东--> 北京朝阳  %dkg物品运费为:' % self.weight
        html = self.get_response()
        info = json.loads(html)
        if info['data'] and info['jg']:
            result1 = first + "%s 元\t%s " % (info['jg'], info['data'][0]['name'])
            # print(result)
            return result1
        else:
            result2 = first + "{0} 元\t未查询到此快递公司 id={1}".format(info['jg'], self.who)
            return str(result2)

if __name__ == '__main__':
    prices = []
    for i in range(1, 50):
        q = QueryPrice(i, 20)
        result = q.get_result()
        price = int(re.findall(r'(\d+)\s元', result)[0])
        if price != 0:
            print(result)
            prices.append(price)
    print('最便宜价格为:%s \n最贵的价格为:%s' % (min(prices), max(prices)))

四、查看查询效果

查询的是前50个id(快递公司)的价格目录表,有些便宜的无法想象,有些贵的离谱。当然还是那句话,合适的服务合适的价格才是我们最合适的选择。

写在最后: 虽然查询出了这么多快递公司,甚至还有些听都没听过,但是这些快递(物流)公司的的价格也有些偏差。这里又要说到一些快递公司的乱收取费用的事了,有些公司在官网连个明码标价的都没有,个别区域就看心情和情况收费。

原文地址:https://www.cnblogs.com/zeo-to-one/p/9465176.html

时间: 2024-10-19 03:59:33

Python爬取指定重量的快递价格的相关文章

使用python爬取淘宝商品名称和价格

最近在家闲得无聊,由于家里开网点,妈妈对于起商品标题感到很头痛,所以我就想在淘宝爬取一些信息. 小破站找了个学习视频,跟一遍发现视频是2018年的,而淘宝在2019年可能加入了反爬取机制,使用正常的方法爬不到结果. 但是有一种方式可以爬取,要先登陆淘宝网页版,然后去搜索,获取cookie和user-agent. 代码如下: import requests import re def getHTMLText(url): kv = {'cookie':'cna=54y8Fm+TyioCATzcP+B

python爬取京东所有iphone的价格和名称

原本想升一下级,用一下creep神马的,但是正则今天突然出了点小问题,我就生气了,就用正则抓取了一下. 这个正则可以用re.search 或者 re.findall都可以,我比较喜欢用search因为可以直接提取结果不用在过滤了. 代码如下,这个小爬爬比较简单. #-*- coding:utf-8 -*- import urllib2 import json import re SearchIphoneUrl = 'http://search.jd.com/Search?keyword=%E8%

利用Python爬取豆瓣电影

目标:使用Python爬取豆瓣电影并保存MongoDB数据库中 我们先来看一下通过浏览器的方式来筛选某些特定的电影: 我们把URL来复制出来分析分析: https://movie.douban.com/tag/#/?sort=T&range=0,10&tags=%E7%94%B5%E5%BD%B1,%E7%88%B1%E6%83%85,%E7%BE%8E%E5%9B%BD,%E9%BB%91%E5%B8%AE 有3个字段是非常重要的: 1.sort=T 2.range=0,10 3.tag

python爬取网易云音乐歌曲评论信息

网易云音乐是广大网友喜闻乐见的音乐平台,区别于别的音乐平台的最大特点,除了"它比我还懂我的音乐喜好"."小清新的界面设计"就是它独有的评论区了------各种故事汇,各种金句频出.我们可以透过歌曲的评论数来判断一个歌者的市场分量和歌曲的流行度.言归正传,如果我们想要简单爬取指定歌曲的评论内容来做词云或者其他相关数据分析,有没有容易上手的好方法呢? 首先,我们打开网易云音乐的网页版:https://music.163.com/,随便选择一首歌曲,如林志炫版本的<

最后轻松一夏,周末利用python爬取“陈翔六点半”搞笑视频!

觉得程序员再忙也需要给自己安排一点娱乐时间,对自己好点,自己对自己不好,谁会? 自己娱乐一般会有:跑步.看电影.小视频,而小视频是最家常的娱乐方式,看得最多的小视频是「 陈翔六点半 」,咦! 拍得搞笑,演技也一流,也不乏有内涵!非常推荐大家看看. 时间太贵,我耗不起 正题 先上Python爬取小视频的效果图,duang.duang.duang.想下载什么就是什么,哈哈. 打开浏览器(电脑版,方便调试)输入微博 url 点击输入框,输入「陈翔六点半」,回车搜索 但是发现在这个页面就只用几个视频.滑

Python-定时爬取指定城市天气(一)-发送给关心的微信好友

一.背景 上班的日子总是3点一线,家里,公司和上班的路径,对于一个特别懒得我来说,经常遇到上班路上下雨了,而我却没带伞,多么痛的领悟.最近对python有一种狂热的学习热情,写了4年多的C++代码,对于python我不能说简单,但是他做东西确实太快了,现有的第三方资源真的炒鸡多,用的我也是不亦乐乎.除了上班忘记带伞,每天重复性的工作还有很多,比如上下班打卡.每个礼拜的周报,还有如果有关心的女神,也可以做定时发送心里话,或者定时提醒等各种服务.有时候想如果有一个人能按时提醒我就好了,这种想法也就停

Python-定时爬取指定城市天气(二)-邮件提醒

目录 一.概述 二.模块重新划分 三.优化定时任务 四.发送邮件 五.源代码 一.概述 上一篇文章python-定时爬取指定城市天气(一)-发送给关心的微信好友中我们讲述了怎么定时爬取城市天气,并发送给指定微信好友,文末遗留两个问题 定时任务做成windows服务,这样更优雅,随开机启动 发送消息给微信好友换成发送邮件给指定邮箱 本篇文章我们在原来代码的基础上进行了一定的模块拆分,并处理以上两个问题 二.模块重新划分 1. 新增my_job.py文件,把任务模块单独划分出来 之前的定时任务使用的

表哥用Python爬取数千条淘宝商品数据后,发现淘宝这些潜规则!

本文记录了笔者用 Python 爬取淘宝某商品的全过程,并对商品数据进行了挖掘与分析,最终得出结论. 项目内容 本案例选择商品类目:沙发. 数量:共 100 页 4400 个商品. 筛选条件:天猫.销量从高到低.价格 500 元以上. 项目目的 对商品标题进行文本分析,词云可视化 不同关键词 word 对应的 sales 的统计分析 商品的价格分布情况分析 商品的销量分布情况分析 不同价格区间的商品的平均销量分布 商品价格对销量的影响分析 商品价格对销售额的影响分析 不同省份或城市的商品数量分布

Python爬取视频指南

摘自:https://www.jianshu.com/p/9ca86becd86d 前言 前两天尔羽说让我爬一下菜鸟窝的教程视频,这次就跟大家来说说Python爬取视频的经验 正文 https://www.cniao5.com/ 菜鸟窝上有很多教程视频,但是这些视频好像没有直接的下载地址,而且有些教程视频还是有期限的,那么问题就产生了我看的速度比较慢而且视频又很多,没等我看完视频就到期了怎么办?这时候写一个爬虫将这些教程视频下载下来就很好地解决了这个问题 当然,对于某些视频网站的VIP电影.视频