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 内置函数进制转换的用法(十进制转二进制、八进制、十六进制)
Apr 30 Python
Python使用Pickle库实现读写序列操作示例
Jun 15 Python
Python装饰器基础概念与用法详解
Dec 22 Python
Flask之请求钩子的实现
Dec 23 Python
Pandas读写CSV文件的方法示例
Mar 27 Python
Python3.5面向对象程序设计之类的继承和多态详解
Apr 24 Python
Django 过滤器汇总及自定义过滤器使用详解
Jul 19 Python
python 函数的缺省参数使用注意事项分析
Sep 17 Python
Python实现搜索算法的实例代码
Jan 02 Python
K最近邻算法(KNN)---sklearn+python实现方式
Feb 24 Python
Python run()函数和start()函数的比较和差别介绍
May 03 Python
keras topN显示,自编写代码案例
Jul 03 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读写文件的方法(生成HTML)
2006/11/27 PHP
PHP之autoload运行机制实例分析
2014/08/28 PHP
PHP中浮点数计算比较及取整不准确的解决方法
2015/01/09 PHP
ThinkPHP3.2.2的插件控制器功能
2015/03/05 PHP
php保存信息到当前Session的方法
2015/03/16 PHP
PHP实现时间日期友好显示实现代码
2019/09/08 PHP
javascript模版引擎-tmpl的bug修复与性能优化分析
2011/10/23 Javascript
javascript中数组的多种定义方法和常用函数简介
2014/05/09 Javascript
JavaScript常用验证函数实例汇总
2014/11/25 Javascript
jQuery使用height()获取高度需要注意的地方
2014/12/13 Javascript
javascript 闭包详解
2015/02/15 Javascript
js和jquery实现监听键盘事件示例代码
2020/06/24 Javascript
js导出excel文件的简洁方法(推荐)
2016/11/02 Javascript
深入浅析Nodejs的Http模块
2017/06/20 NodeJs
详解HTML5 使用video标签实现选择摄像头功能
2017/10/25 Javascript
vue组件name的作用小结
2018/05/23 Javascript
Vuex 使用及简单实例(计数器)
2018/08/29 Javascript
Vue 通过自定义指令回顾v-内置指令(小结)
2018/09/03 Javascript
JS浮点数运算结果不精确的Bug解决
2019/08/01 Javascript
Vue实现滑动拼图验证码功能
2019/09/15 Javascript
Vue 3.0双向绑定原理的实现方法
2019/10/23 Javascript
Python解析nginx日志文件
2015/05/11 Python
linux平台使用Python制作BT种子并获取BT种子信息的方法
2017/01/20 Python
python 通过视频url获取视频的宽高方式
2019/12/10 Python
树莓派4B安装Tensorflow的方法步骤
2020/07/16 Python
Python监听剪切板实现方法代码实例
2020/11/11 Python
一款利用html5和css3实现的3D立方体旋转效果教程
2016/04/26 HTML / CSS
html5的画布canvas——画出简单的矩形、三角形实例代码
2013/06/09 HTML / CSS
举例详解HTML5中使用JSON格式提交表单
2015/06/16 HTML / CSS
"引用"与指针的区别是什么
2016/09/07 面试题
高中生毕业学习总结的自我评价
2013/11/14 职场文书
车间操作工岗位职责
2013/12/19 职场文书
团队拓展活动方案
2014/08/28 职场文书
民主生活会对照检查材料范文
2014/10/01 职场文书
《改造我们的学习》心得体会
2014/11/07 职场文书
Python批量将csv文件转化成xml文件的实例
2021/05/10 Python