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 相关文章推荐
把MySQL表结构映射为Python中的对象的教程
Apr 07 Python
Python 爬虫学习笔记之多线程爬虫
Sep 21 Python
Django应用程序中如何发送电子邮件详解
Feb 04 Python
浅谈numpy数组的几种排序方式
Dec 15 Python
python2 与 python3 实现共存的方法
Jul 12 Python
python得到一个excel的全部sheet标签值方法
Dec 10 Python
Python安装Flask环境及简单应用示例
May 03 Python
Python学习笔记之列表推导式实例分析
Aug 13 Python
基于python的docx模块处理word和WPS的docx格式文件方式
Feb 13 Python
Python多线程通信queue队列用法实例分析
Mar 24 Python
分享python函数常见关键字
Apr 26 Python
python 学习GCN图卷积神经网络
May 11 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 不使用js实现页面跳转
2014/02/11 PHP
使用php批量删除数据库下所有前缀为prefix_的表
2014/06/09 PHP
PHP实现数组转JSon和JSon转数组的方法示例
2018/06/14 PHP
PHP 数组黑名单/白名单实例代码详解
2019/06/04 PHP
php 函数中静态变量使用的问题实例分析
2020/03/05 PHP
javascript实现仿银行密码输入框效果的代码
2007/12/13 Javascript
js QQ客服悬浮效果实现代码
2014/12/12 Javascript
JavaScript字符串常用的方法
2016/03/10 Javascript
JS模态窗口返回值兼容问题的完美解决方法
2016/05/28 Javascript
vue学习笔记之vue1.0和vue2.0的区别介绍
2017/05/17 Javascript
jQuery绑定事件方法及区别(bind,click,on,live,one)
2017/08/14 jQuery
Vue登录注册并保持登录状态的方法
2018/08/17 Javascript
微信小程序用户授权、位置授权及获取微信绑定手机号
2019/07/18 Javascript
jquery.pager.js实现分页效果
2019/07/29 jQuery
JavaScript 事件代理需要注意的地方
2020/09/08 Javascript
结合Python的SimpleHTTPServer源码来解析socket通信
2016/06/27 Python
Python实现更改图片尺寸大小的方法(基于Pillow包)
2016/09/19 Python
Python3 queue队列模块详细介绍
2018/01/05 Python
python使用opencv按一定间隔截取视频帧
2018/03/06 Python
Python实现的维尼吉亚密码算法示例
2018/04/12 Python
python-docx修改已存在的Word文档的表格的字体格式方法
2018/05/08 Python
python 3.6.4 安装配置方法图文教程
2018/09/18 Python
python找出因数与质因数的方法
2019/07/25 Python
Python文字截图识别OCR工具实例解析
2020/03/05 Python
xadmin使用formfield_for_dbfield函数过滤下拉表单实例
2020/04/07 Python
Python爬虫headers处理及网络超时问题解决方案
2020/06/19 Python
python 操作excel表格的方法
2020/12/05 Python
python matlab库简单用法讲解
2020/12/31 Python
HTML5 device access 设备访问详解
2018/05/24 HTML / CSS
国际会议邀请函范文
2014/01/16 职场文书
社区工作者先进事迹
2014/01/18 职场文书
幼儿园大班毕业感言
2014/02/06 职场文书
企业员工集体活动方案
2014/08/17 职场文书
工作业绩不及格检讨书
2014/10/28 职场文书
父亲节寄语大全
2015/02/27 职场文书
民主生活会意见
2015/06/05 职场文书