场景编程集锦 - 捏紧你的钱袋子

时间:2023-01-11 09:56:39

1. 场景描述

场景编程集锦 - 捏紧你的钱袋子 下面是一通电话的通话内容: 陌生人:“李总,最近还好吗?” 李总:“您是哪一位?” 陌生人:“我的声音听不出来啦?” 李总:“有点耳熟,想不起来。” 陌生人:“猜猜我是谁?” 李总:“想起来啦,你是猪二娃!” 陌生人:“对啊!” 李总:“猪二娃两年前就死啦!” 陌生人狠狠地挂断了电话。   哈哈哈,高手在民间!想必电话那头的陌生人肺都要气炸了。这是一个典型的电信诈骗套路,幽默睿智的李总把骗子戏弄了一番,实在是过瘾。这里应该有掌声!从众多的电信诈骗案例表明,尽管是骗子老套的伎俩,还是有人上当受骗,造成了惨痛的经济损失。   现实生活中并不总是充满阳光,还有各种欺诈和诱惑。想必你一定听到过关于民间借贷与庞氏骗局。那些经过巧妙包装回报丰厚的投资项目,正诱骗着投资人跳入预设的圈套和陷阱,最终结局不言而喻,骗子卷款潜逃,投资人血本无归。纵观投资项目“暴雷”,结局基本上大同小异。   人上一百,形形色色。现实世界中还有这样一类特殊人群,借钱不还,还玩失联。人们把他/她们戏称为“老赖”。在司法实践中,“老赖”叫做失信被执行人。在此简单科普一下,所谓的“失信被执行人”是指未履行生效法律文书确定的义务并具有“有履行能力而不履行”、“抗拒执行”等法定情形,从而被人民法院依法纳入失信被执行人名单的人。“老赖”可能就潜伏隐藏在你的工作圈、生活圈和朋友圈中,他们可能是你的亲属、同事、同学、朋友或者合作伙伴。当你与“老赖”有经济往来时,你就要小心啦!必须提高警惕,擦亮眼睛,捏紧你的钱袋子。或许你会提出问题:我不知道哪些人是“老赖”?下面我们就用Python程序来帮你找出和曝光“老赖”,让“老赖”无所遁形!


2. 编程思路

  我们可以使用Python的爬虫技术,在专业网站上抓去失信被执行人的信息。这里提供两种方法可以查询失信被执行人。

2.1 全国执行信息公开网

http://zxgk.court.gov.cn/zhzxgk/

2.2 百度查询

http://baidu.com/s?wd=失信被执行人查询 场景编程集锦 - 捏紧你的钱袋子

当你输入失信被执行人查询等关键词,就可以开始查询并展示结果。 以上两种方法均需要你以交互式的方式进行查询。下面通过Python程序的爬虫技术进行数据抓取,晒一晒“老赖”的斑斑劣迹。这里需要用到的是第三方库requests,需要我们单独安装。


3. 代码实现

"""
  find_ll.py - 捏紧你的钱袋子
"""
import requests    # ①
import json
import sys

def main():
    if len(sys.argv) < 3:
        print('Usage: find_ll.py name province_name')
        sys.exit(1)

    data = query(sys.argv[1], sys.argv[2])
    print_result(data)

def query(name, area):
    """
    根据姓名和省份查询失信人记录
    """
    url = 'https://sp1.baidu.com/8aQDcjqpAAV3otqbppnN2DJv/api.php?resource_id=6899' \
          '&query=失信被执行人查询&cardNum=&areaName=&ie=utf-8&oe=utf-8&format=json'   # ②
    headers = {
        'User-Agent': 'Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) '
                      'AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.212 Mobile Safari/537.36'} # ③

    r = requests.get(url, headers=headers, params={'iname': name, 'areaName': area})   # ④

    try:
        r.raise_for_status()
    except Exception as exc:
        print('错误:{0}'.format(exc))
        exit(1)

    data = json.loads(r.text)   # ⑤
    return data

def print_result(data):
    """
    打印查询结果
    """
    if data['data']:
        total = 0
        for dataset in data['data']:   # ⑥
            cases = dataset['result']
            for case in cases:   # ⑦
                total += 1
                print('-' * 25, '第', total, '条信息', '-' * 25)
                if case['businessEntity']:
                    print('失信人:  ', case['iname'] + '(企业法人:' + case['businessEntity'] + ')')
                else:
                    print('失信人:  ', case['iname'])
                print('证件号:  ', case['cardNum'])
                if case['sexy']:
                    print('性别:    ', case['sexy'], '\t年龄:', case['age'], '(公布时年龄)')
                print('省份名称:', case['areaName'])
                print('执行法院:', case['courtName'])
                print('案件代号:', case['caseCode'])
                print('承担义务:', case['duty'])
                print('履行情况:', case['performance'])
                print('具体原因:', case['disruptTypeName'])
                print('公布日期:', case['publishDate'])

        print('\n共计{0}条公示信息!'.format(total))
    else:
        print('没有相关信息!')

if __name__ == '__main__':
main()

下面是程序重要语句的解释说明: 语句①导入requests模块。 语句②url变量存放需要访问的网页地址。 语句③构建一个HTTP的请求头,以便模拟浏览器是发送HTTP请求。 语句④requests.get()用于下载一个网页,这里使用字典方式传递参数,包括失信人的名字(或单位公司名称),以及省份或地区。 语句⑤把下载的页面内容转换成JSON格式,方便后续解析网页内容。 语句⑥和⑦使用双重循环语句解析案件的详细内容。

4. 执行效果

4.1 安装requests库

pip install request -i http://pypi.douban.com/simple --trusted-host pypi.douban.com

4.2 执行程序

D:\cases\捏紧你的钱袋子>python find_ll.py 钟雪冬 浙江
------------------------- 第 1 条信息 -------------------------
失信人:   钟雪冬
证件号:   3301221954****2116
性别:     男性  年龄: 65 (公布时年龄)
省份名称: 浙江
执行法院: 桐庐县人民法院
案件代号: (2018)浙0122执4324号
承担义务: 案款241563元
履行情况: 全部未履行
具体原因: 有履行能力而拒不履行生效法律文书确定义务
公布日期: 2018年12月11日
------------------------- 第 2 条信息 -------------------------
失信人:   钟雪冬
证件号:   3301221954****2116
性别:     男性  年龄: 65 (公布时年龄)
省份名称: 浙江
执行法院: 桐庐县人民法院
案件代号: (2018)浙0122执3108号
承担义务: 案款83870元及利息
履行情况: 全部未履行
具体原因: 有履行能力而拒不履行生效法律文书确定义务
公布日期: 2018年08月29日
------------------------- 第 3 条信息 -------------------------
失信人:   钟雪冬
证件号:   3301221954****2116
性别:     男性  年龄: 65 (公布时年龄)
省份名称: 浙江
执行法院: 浦江县人民法院
案件代号: (2018)浙0726执1603号
承担义务: 判令钟雪冬、罗春柳支付借款100650元本金及利息
履行情况: 全部未履行
具体原因: 有履行能力而拒不履行生效法律文书确定义务
公布日期: 2018年08月30日
------------------------- 第 4 条信息 -------------------------
失信人:   钟雪冬
证件号:   3301221954****2116
性别:     男性  年龄: 62 (公布时年龄)
省份名称: 浙江
执行法院: 桐庐县人民法院
案件代号: (2016)浙0122执1078号
承担义务:
履行情况: 全部未履行
具体原因: 其他有履行能力而拒不履行生效法律文书确定义务
公布日期: 2016年05月09日
------------------------- 第 5 条信息 -------------------------
失信人:   钟雪冬
证件号:   3301221954****2116
性别:     男性  年龄: 64 (公布时年龄)
省份名称: 浙江
执行法院: 桐庐县人民法院
案件代号: (2017)浙0122执835号
承担义务: 支付案款40000元
履行情况: 全部未履行
具体原因: 有履行能力而拒不履行生效法律文书确定义务
公布日期: 2017年07月21日
------------------------- 第 6 条信息 -------------------------
失信人:   钟雪冬
证件号:   3301221954****2116
性别:     男性  年龄: 64 (公布时年龄)
省份名称: 浙江
执行法院: 桐庐县人民法院
案件代号: (2017)浙0122执1235号
承担义务: 支付107513.81元及利息
履行情况: 全部未履行
具体原因: 有履行能力而拒不履行生效法律文书确定义务
公布日期: 2017年09月14日
------------------------- 第 7 条信息 -------------------------
失信人:   钟雪冬
证件号:   3301221954****2116
性别:     男性  年龄: 65 (公布时年龄)
省份名称: 浙江
执行法院: 桐庐县人民法院
案件代号: (2018)浙0122执3894号
承担义务: 案款90600元及利息
履行情况: 全部未履行
具体原因: 有履行能力而拒不履行生效法律文书确定义务
公布日期: 2018年11月05日
------------------------- 第 8 条信息 -------------------------
失信人:   钟雪冬
证件号:   3301221954****2116
性别:     男性  年龄: 66 (公布时年龄)
省份名称: 浙江
执行法院: 桐庐县人民法院
案件代号: (2019)浙0122执1号
承担义务: 案款75000元
履行情况: 全部未履行
具体原因: 有履行能力而拒不履行生效法律文书确定义务
公布日期: 2019年01月04日
------------------------- 第 9 条信息 -------------------------
失信人:   钟雪冬
证件号:   3301221954****2116
性别:     男性  年龄: 66 (公布时年龄)
省份名称: 浙江
执行法院: 桐庐县人民法院
案件代号: (2019)浙0122执1281号
承担义务: 案款59000元
履行情况: 全部未履行
具体原因: 有履行能力而拒不履行生效法律文书确定义务
公布日期: 2019年05月31日
------------------------- 第 10 条信息 -------------------------
失信人:   钟雪冬
证件号:   3301221954****2116
性别:     男性  年龄: 66 (公布时年龄)
省份名称: 浙江
执行法院: 桐庐县人民法院
案件代号: (2019)浙0122执1291号
承担义务: 案款61100元
履行情况: 全部未履行
具体原因: 有履行能力而拒不履行生效法律文书确定义务
公布日期: 2019年05月31日
------------------------- 第 11 条信息 -------------------------
失信人:   钟雪冬
证件号:   3301221954****2116
性别:     男性  年龄: 64 (公布时年龄)
省份名称: 浙江
执行法院: 桐庐县人民法院
案件代号: (2017)浙0122执3533号
承担义务: (2016)浙0122民初5633号
履行情况: 全部未履行
具体原因: 有履行能力而拒不履行生效法律文书确定义务
公布日期: 2018年03月01日
------------------------- 第 12 条信息 -------------------------
失信人:   钟雪冬
证件号:   3301221954****2116
性别:     男性  年龄: 64 (公布时年龄)
省份名称: 浙江
执行法院: 浙江省桐庐县人民法院
案件代号: (2017)浙0122执172号
承担义务: 支付案款37355元
履行情况: 全部未履行
具体原因: 其他有履行能力而拒不履行生效法律文书确定义务的
公布日期: 2017年02月16日
------------------------- 第 13 条信息 -------------------------
失信人:   钟雪冬
证件号:   3301221954****2116
性别:     男性  年龄: 64 (公布时年龄)
省份名称: 浙江
执行法院: 桐庐县人民法院
案件代号: (2017)浙0122执1608号
承担义务: 支付93900元及利息
履行情况: 全部未履行
具体原因: 有履行能力而拒不履行生效法律文书确定义务
公布日期: 2017年09月14日
------------------------- 第 14 条信息 -------------------------
失信人:   钟雪冬
证件号:   3301221954****2116
性别:     男性  年龄: 64 (公布时年龄)
省份名称: 浙江
执行法院: 桐庐县人民法院
案件代号: (2017)浙0122执836号
承担义务: 支付案款30000元
履行情况: 全部未履行
具体原因: 有履行能力而拒不履行生效法律文书确定义务
公布日期: 2017年07月21日
------------------------- 第 15 条信息 -------------------------
失信人:   钟雪冬
证件号:   3301221954****2116
性别:     男性  年龄: 66 (公布时年龄)
省份名称: 浙江
执行法院: 浦江县人民法院
案件代号: (2018)浙0726执5736号
承担义务: (2018)浙0726执5736号
履行情况: 全部未履行
具体原因: 有履行能力而拒不履行生效法律文书确定义务
公布日期: 2019年06月11日
------------------------- 第 16 条信息 -------------------------
失信人:   钟雪冬
证件号:   3301221954****2116
性别:     男性  年龄: 66 (公布时年龄)
省份名称: 浙江
执行法院: 桐庐县人民法院
案件代号: (2019)浙0122执12号
承担义务: 案款25000元
履行情况: 全部未履行
具体原因: 有履行能力而拒不履行生效法律文书确定义务
公布日期: 2019年01月04日
------------------------- 第 17 条信息 -------------------------
失信人:   钟雪冬
证件号:   3301221954****2116
性别:     男性  年龄: 64 (公布时年龄)
省份名称: 浙江
执行法院: 桐庐县人民法院
案件代号: (2017)浙0122执1390号
承担义务: 支付5万元及利息
履行情况: 全部未履行
具体原因: 有履行能力而拒不履行生效法律文书确定义务
公布日期: 2017年09月14日

共计17条公示信息!
D:\cases\捏紧你的钱袋子>

  如果查询没有内容显示,并不意味着某人不是老赖,因为有关司法数据有时间滞后效应。如果你查询已有信息显示的一定是老赖。

5. 场景扩展

  以上开发的应用程序find_ll.py还可供银行客户经理、信贷人员在开展客户资信调查使用,以了解贷款申请客户是否存在不良的信用记录,是否是失信被执行人。