Python爬虫实现全国失信被执行人名单查询功能示例


Posted in Python onMay 03, 2018

本文实例讲述了Python爬虫实现全国失信被执行人名单查询功能。分享给大家供大家参考,具体如下:

一、需求说明

利用百度的接口,实现一个全国失信被执行人名单查询功能。输入姓名,查询是否在全国失信被执行人名单中。

Python爬虫实现全国失信被执行人名单查询功能示例

二、python实现

版本1:

# -*- coding:utf-8*-
import sys
reload(sys)
sys.setdefaultencoding('utf-8')
import time
import requests
time1=time.time()
import pandas as pd
import json
iname=[]
icard=[]
def person_executed(name):
  for i in range(0,30):
    try:
      url="https://sp0.baidu.com/8aQDcjqpAAV3otqbppnN2DJv/api.php?resource_id=6899" \
      "&query=%E5%A4%B1%E4%BF%A1%E8%A2%AB%E6%89%A7%E8%A1%8C%E4%BA%BA%E5%90%8D%E5%8D%95" \
      "&cardNum=&" \
      "iname="+str(name)+ \
      "&areaName=" \
      "&pn="+str(i*10)+ \
      "&rn=10" \
      "&ie=utf-8&oe=utf-8&format=json"
      html=requests.get(url).content
      html_json=json.loads(html)
      html_data=html_json['data']
      for each in html_data:
        k=each['result']
        for each in k:
          print each['iname'],each['cardNum']
          iname.append(each['iname'])
          icard.append(each['cardNum'])
    except:
      pass
if __name__ == '__main__':
  name="郭**"
  person_executed(name)
  print len(iname)
  #####################将数据组织成数据框###########################
  data=pd.DataFrame({"name":iname,"IDCard":icard})
  #################数据框去重####################################
  data1=data.drop_duplicates()
  print data1
  print len(data1)
  #########################写出数据到excel#########################################
  pd.DataFrame.to_excel(data1,"F:\\iname_icard_query.xlsx",header=True,encoding='gbk',index=False)
  time2=time.time()
  print u'ok,爬虫结束!'
  print u'总共耗时:'+str(time2-time1)+'s'

三、效果展示

"D:\Program Files\Python27\python.exe" D:/PycharmProjects/learn2017/全国失信被执行人查询.py
郭** 34122319790****5119
郭** 32032119881****2419
郭** 32032119881****2419
3
                IDCard name
0  34122319790****5119  郭**
1  32032119881****2419  郭**
2
ok,爬虫结束!
总共耗时:7.72000002861s
Process finished with exit code 0

版本2:

# -*- coding:utf-8*-
import sys
reload(sys)
sys.setdefaultencoding('utf-8')
import time
import requests
time1=time.time()
import pandas as pd
import json
iname=[]
icard=[]
courtName=[]
areaName=[]
caseCode=[]
duty=[]
performance=[]
disruptTypeName=[]
publishDate=[]
def person_executed(name):
  for i in range(0,30):
    try:
      url="https://sp0.baidu.com/8aQDcjqpAAV3otqbppnN2DJv/api.php?resource_id=6899" \
      "&query=%E5%A4%B1%E4%BF%A1%E8%A2%AB%E6%89%A7%E8%A1%8C%E4%BA%BA%E5%90%8D%E5%8D%95" \
      "&cardNum=&" \
      "iname="+str(name)+ \
      "&areaName=" \
      "&pn="+str(i*10)+ \
      "&rn=10" \
      "&ie=utf-8&oe=utf-8&format=json"
      html=requests.get(url).content
      html_json=json.loads(html)
      html_data=html_json['data']
      for each in html_data:
        k=each['result']
        for each in k:
          print each['iname'],each['cardNum'],each['courtName'],each['areaName'],each['caseCode'],each['duty'],each['performance'],each['disruptTypeName'],each['publishDate']
          iname.append(each['iname'])
          icard.append(each['cardNum'])
          courtName.append(each['courtName'])
          areaName.append(each['areaName'])
          caseCode.append(each['caseCode'])
          duty.append(each['duty'])
          performance.append(each['performance'])
          disruptTypeName.append(each['disruptTypeName'])
          publishDate.append(each['publishDate'])
    except:
      pass
if __name__ == '__main__':
  name="郭**"
  person_executed(name)
  print len(iname)
  #####################将数据组织成数据框###########################
  # data=pd.DataFrame({"name":iname,"IDCard":icard})
  detail_data=pd.DataFrame({"name":iname,"IDCard":icard,"courtName":courtName,"areaName":areaName,"caseCode":caseCode,"duty":duty,"performance":performance,\
               "disruptTypeName":disruptTypeName,"publishDate":publishDate})
  #################数据框去重####################################
  # data1=data.drop_duplicates()
  # print data1
  # print len(data1)
  detail_data1=detail_data.drop_duplicates()
  # print detail_data1
  # print len(detail_data1)
  #########################写出数据到excel#########################################
  pd.DataFrame.to_excel(detail_data1,"F:\\iname_icard_query.xlsx",header=True,encoding='gbk',index=False)
  time2=time.time()
  print u'ok,爬虫结束!'
  print u'总共耗时:'+str(time2-time1)+'s'

更多关于Python相关内容可查看本站专题:《Python Socket编程技巧总结》、《Python正则表达式用法总结》、《Python数据结构与算法教程》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》、《Python入门与进阶经典教程》及《Python文件与目录操作技巧汇总》

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
python查询sqlite数据表的方法
May 08 Python
Python字符串拼接、截取及替换方法总结分析
Apr 13 Python
python实现感知器
Dec 19 Python
Python使用pyodbc访问数据库操作方法详解
Jul 05 Python
Python装饰器原理与基本用法分析
Jan 07 Python
tensorflow的ckpt及pb模型持久化方式及转化详解
Feb 12 Python
基于pytorch padding=SAME的解决方式
Feb 18 Python
Python多线程多进程实例对比解析
Mar 12 Python
Pandas将列表(List)转换为数据框(Dataframe)
Apr 24 Python
python基于exchange函数发送邮件过程详解
Nov 06 Python
Python使用PyYAML库读写yaml文件的方法
Apr 06 Python
Python万能模板案例之matplotlib绘制直方图的基本配置
Apr 13 Python
Python 解决中文写入Excel时抛异常的问题
May 03 #Python
python 将数据保存为excel的xls格式(实例讲解)
May 03 #Python
python更改已存在excel文件的方法
May 03 #Python
python写入已存在的excel数据实例
May 03 #Python
Python实现输出某区间范围内全部素数的方法
May 02 #Python
使用Python通过win32 COM打开Excel并添加Sheet的方法
May 02 #Python
python实战之实现excel读取、统计、写入的示例讲解
May 02 #Python
You might like
php+javascript的日历控件
2009/11/19 PHP
PHP与jquery实时显示网站在线人数实例详解
2016/12/02 PHP
动态表格Table类的实现
2009/08/26 Javascript
IE6中使用position导致页面变形的解决方案(js代码)
2011/01/09 Javascript
判断文档离浏览器顶部的距离的方法
2014/01/08 Javascript
移动节点的jquery代码
2014/01/13 Javascript
深入理解JavaScript系列(46):代码复用模式(推荐篇)详解
2015/03/04 Javascript
js实现支持手机滑动切换的轮播图片效果实例
2015/04/29 Javascript
js面向对象之常见创建对象的几种方式(工厂模式、构造函数模式、原型模式)
2015/11/09 Javascript
bootstrap中的 form表单属性role="form"的作用详解
2017/01/20 Javascript
原生javascript实现分页效果
2017/04/21 Javascript
浅谈Vue网络请求之interceptors实际应用
2018/02/28 Javascript
使用Angular CLI进行Build(构建)和Serve详解
2018/03/24 Javascript
layui 给数据表格加序号的方法
2018/08/20 Javascript
新手简单了解vue
2019/05/29 Javascript
vue 集成jTopo 处理方法
2019/08/07 Javascript
VuePress 中如何增加用户登录功能
2019/11/29 Javascript
微信小程序仿通讯录功能
2020/04/09 Javascript
微信小程序swiper组件实现抖音翻页切换视频功能的实例代码
2020/06/24 Javascript
H5 js点击按钮复制文本到粘贴板
2020/11/19 Javascript
[50:17]Newbee vs Serenity 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/18 DOTA
[48:27]EG vs Liquid 2018国际邀请赛淘汰赛BO3 第二场 8.25
2018/08/29 DOTA
Python实现点阵字体读取与转换的方法
2019/01/29 Python
python区块及区块链的开发详解
2019/07/03 Python
python中怎么表示空值
2020/06/19 Python
The North Face北面荷兰官网:美国著名户外品牌
2019/10/16 全球购物
Currentbody澳大利亚:美容仪专家
2019/11/11 全球购物
个人简历自我鉴定
2013/10/11 职场文书
中学生运动会入场词
2014/02/12 职场文书
幼儿园春季开学寄语
2014/04/03 职场文书
物理学专业自荐信
2014/06/11 职场文书
教师自我剖析材料范文
2014/09/30 职场文书
杭州西湖英语导游词
2015/02/03 职场文书
2015年高中生国庆节演讲稿
2015/07/30 职场文书
Oracle创建只读账号的详细步骤
2021/06/07 Oracle
JS 基本概念详细介绍
2021/10/16 Javascript