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目录操作之python遍历文件夹后将结果存储为xml
Jan 27 Python
在Python中使用cookielib和urllib2配合PyQuery抓取网页信息
Apr 25 Python
在Python中使用swapCase()方法转换大小写的教程
May 20 Python
Python3读取zip文件信息的方法
May 22 Python
python定时器(Timer)用法简单实例
Jun 04 Python
Tensorflow 利用tf.contrib.learn建立输入函数的方法
Feb 08 Python
Tensorflow 查看变量的值方法
Jun 14 Python
python实现单链表中删除倒数第K个节点的方法
Sep 28 Python
django的settings中设置中文支持的实现
Apr 28 Python
python Pandas库基础分析之时间序列的处理详解
Jul 13 Python
.dcm格式文件软件读取及python处理详解
Jan 16 Python
pandas使用函数批量处理数据(map、apply、applymap)
Nov 27 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 empty()与isset()区别的详细介绍
2013/06/17 PHP
PHP goto语句简介和使用实例
2014/03/11 PHP
ThinkPHP3.1新特性之动态设置自动完成和自动验证示例
2014/06/19 PHP
php通过array_merge()函数合并关联和非关联数组的方法
2015/03/18 PHP
XHProf报告字段含义的解析
2016/05/17 PHP
让FireFox支持innerText的实现代码
2009/12/01 Javascript
关于使用 jBox 对话框的提交不能弹出问题解决方法
2012/11/07 Javascript
深入理解Javascript中的循环优化
2013/11/09 Javascript
JavaScript实现继承的4种方法总结
2014/10/16 Javascript
玩转JavaScript OOP - 类的实现详解
2016/06/08 Javascript
AngularJS基础 ng-keypress 指令简单示例
2016/08/02 Javascript
JSONP和批量操作功能的实现方法
2016/08/21 Javascript
JavaScript中apply方法的应用技巧小结
2016/09/29 Javascript
AngularJS中isolate scope的用法分析
2016/11/22 Javascript
搭建Bootstrap离线文档的方法
2016/12/02 Javascript
JS实现unicode和UTF-8之间的互相转换互转
2017/07/05 Javascript
用JS编写一个函数,返回数组中重复出现过的元素(实例)
2017/09/14 Javascript
WebSocket的通信过程与实现方法详解
2018/04/29 Javascript
AngularJS与BootStrap模仿百度分页的示例代码
2018/05/23 Javascript
vue超时计算的组件实例代码
2018/07/09 Javascript
JavaScript使用享元模式实现文件上传优化操作示例
2018/08/07 Javascript
稍微学一下Vue的数据响应式(Vue2及Vue3区别)
2019/11/21 Javascript
vue.js click点击事件获取当前元素对象的操作
2020/08/07 Javascript
Django中使用Celery的教程详解
2018/08/24 Python
Python 占位符的使用方法详解
2019/07/10 Python
Python 模拟动态产生字母验证码图片功能
2019/12/24 Python
Python字符串hashlib加密模块使用案例
2020/03/10 Python
python的json包位置及用法总结
2020/06/21 Python
谈一谈HTML5本地存储技术
2016/03/02 HTML / CSS
详解如何通过H5(浏览器/WebView/其他)唤起本地app
2017/12/11 HTML / CSS
最新的大学生找工作自我评价
2013/09/29 职场文书
计算机专业毕业生自荐信
2013/12/31 职场文书
《最佳路径》教学反思
2014/04/13 职场文书
初中英语课后反思
2014/04/25 职场文书
销售活动策划方案
2014/08/26 职场文书
MySQL 表空间碎片的概念及相关问题解决
2021/05/07 MySQL