首页 新闻页 Python爬取指定重量的快递价格

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

关键词:Python爬取,爬虫代理IP,河马IP代理 Python爬取指定重量的快递价格

text

二、获取相关数据

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

text

三、编写爬虫脚本

使用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(快递公司)的价格目录表,有些便宜的无法想象,有些贵的离谱。当然还是那句话,合适的服务合适的价格才是我们最合适的选择。

为了防止出动反爬虫机制,所有建议在建立爬虫程序得时候使用爬虫代理IP,其过程会稳当一些。建议使用河马IP代理