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中关于for循环的碎碎念
Jun 30 Python
python3 shelve模块的详解
Jul 08 Python
浅谈python装饰器探究与参数的领取
Dec 01 Python
Python3.7实现中控考勤机自动连接
Aug 28 Python
python实现RabbitMQ的消息队列的示例代码
Nov 08 Python
python自动化生成IOS的图标
Nov 13 Python
Python匿名函数/排序函数/过滤函数/映射函数/递归/二分法
Jun 05 Python
基于python-opencv3的图像显示和保存操作
Jun 27 Python
在python中实现调用可执行文件.exe的3种方法
Jul 07 Python
python tkinter 设置窗口大小不可缩放实例
Mar 04 Python
python爬取豆瓣电影排行榜(requests)的示例代码
Feb 18 Python
使用python绘制横竖条形图
Apr 21 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&mysql(五)
2006/10/09 PHP
PHP中=赋值操作符对不同数据类型的不同行为
2011/01/02 PHP
php中ftp_chdir与ftp_cdup函数用法
2014/11/18 PHP
PHP中addslashes与mysql_escape_string的区别分析
2016/04/25 PHP
redirect_uri参数错误的解决方法(必看)
2017/02/16 PHP
PHP使用ActiveMQ实现消息队列的方法详解
2019/05/31 PHP
javascript函数重载解决方案分享
2014/02/19 Javascript
百度移动版的url编码解码示例
2014/04/29 Javascript
iframe子页面与父页面在同域或不同域下的js通信
2014/05/07 Javascript
DIV+CSS+jQ实现省市联动可扩展
2016/06/22 Javascript
大型JavaScript应用程序架构设计模式
2016/06/29 Javascript
基于jQuery实现照片墙自动播放特效
2017/01/12 Javascript
vue中如何实现变量和字符串拼接
2017/06/19 Javascript
vue router demo详解
2017/10/13 Javascript
p5.js入门教程之图片加载
2018/03/20 Javascript
JavaScript使用indexOf()实现数组去重的方法分析
2018/09/04 Javascript
微信小程序之几种常见的弹框提示信息实现详解
2019/07/11 Javascript
[02:41]DOTA2亚洲邀请赛小组赛第三日 赛事回顾
2015/02/01 DOTA
Python实现GUI学生信息管理系统
2020/04/05 Python
对python中的 os.mkdir和os.mkdirs详解
2018/10/16 Python
python 多线程对post请求服务器测试并发的方法
2019/06/13 Python
python序列化与数据持久化实例详解
2019/12/20 Python
python str字符串转uuid实例
2020/03/03 Python
jupyter notebook插入本地图片的实现
2020/04/13 Python
YOOX台湾:意大利奢侈品电商
2018/10/13 全球购物
中文专业毕业生自荐信
2013/10/28 职场文书
《蝙蝠和雷达》教学反思
2014/04/23 职场文书
《鸟岛》教学反思
2014/04/26 职场文书
法院授权委托书范文
2014/08/02 职场文书
2014年图书馆工作总结
2014/11/25 职场文书
2014年仓库管理工作总结
2014/12/17 职场文书
求职信范文怎么写
2015/03/19 职场文书
2015教师年度考核评语
2015/03/25 职场文书
解析Java中的static关键字
2021/06/14 Java/Android
javascript之Object.assign()的痛点分析
2022/03/03 Javascript
详解SQL报错盲注
2022/07/23 SQL Server