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 2.7.x 和 3.x 版本的重要区别小结
Nov 28 Python
python使用装饰器和线程限制函数执行时间的方法
Apr 18 Python
Python编程中对super函数的正确理解和用法解析
Jul 02 Python
windows上安装Anaconda和python的教程详解
Mar 28 Python
Python实现购物评论文本情感分析操作【基于中文文本挖掘库snownlp】
Aug 07 Python
python绘制双Y轴折线图以及单Y轴双变量柱状图的实例
Jul 08 Python
python多线程实现TCP服务端
Sep 03 Python
Python获取一个用户名的组ID过程解析
Sep 03 Python
如何修复使用 Python ORM 工具 SQLAlchemy 时的常见陷阱
Nov 19 Python
Tensorflow:转置函数 transpose的使用详解
Feb 11 Python
Python并发请求下限制QPS(每秒查询率)的实现代码
Jun 05 Python
Python 数据结构之十大经典排序算法一文通关
Oct 16 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实现小型站点广告管理(修正版)
2006/10/09 PHP
php 随机数的产生、页面跳转、件读写、文件重命名、switch语句
2009/08/07 PHP
php变量作用域的深入解析
2013/06/03 PHP
解析php file_exists无效的解决办法
2013/06/26 PHP
用 Javascript 验证表单(form)中的单选(radio)值
2009/09/08 Javascript
JavaScript Distilled 基础知识与函数
2010/04/07 Javascript
Javascript 中的 && 和 || 使用小结
2010/04/25 Javascript
jQuery对表单元素的取值和赋值操作代码
2011/05/19 Javascript
javascript:window.open弹出窗口的位置问题
2014/03/18 Javascript
js实现的简洁网页滑动tab菜单效果代码
2015/08/24 Javascript
利用Javascript实现BMI计算器
2016/08/16 Javascript
深入浅出 jQuery中的事件机制
2016/08/23 Javascript
js获取当前周、上一周、下一周日期
2017/03/19 Javascript
微信小程序 动态传参实例详解
2017/04/27 Javascript
如何在JavaScript中创建具有多个空格的字符串?
2020/02/23 Javascript
Python中使用items()方法返回字典元素对的教程
2015/05/21 Python
python requests使用socks5的例子
2019/07/25 Python
python实现京东订单推送到测试环境,提供便利操作示例
2019/08/09 Python
Python控制台输出时刷新当前行内容而不是输出新行的实现
2020/02/21 Python
将pymysql获取到的数据类型是tuple转化为pandas方式
2020/05/15 Python
Django 解决由save方法引发的错误
2020/05/21 Python
python按照list中字典的某key去重的示例代码
2020/10/13 Python
input元素的url类型和email类型简介
2012/07/11 HTML / CSS
极度干燥澳大利亚官方网站:Superdry澳大利亚
2019/03/28 全球购物
荷兰的时尚市场:To Be Dressed
2019/05/06 全球购物
什么造成了Java里面的异常
2016/04/24 面试题
产品质量承诺书
2014/03/27 职场文书
事业单位鉴定材料
2014/05/25 职场文书
拾金不昧锦旗标语
2014/06/27 职场文书
离婚协议书怎么写2014
2014/09/30 职场文书
中学生旷课检讨书模板
2014/10/08 职场文书
班主任2015新年寄语
2014/12/08 职场文书
2015年计划生育协会工作总结
2015/05/13 职场文书
Redis源码阅读:Redis字符串SDS详解
2021/07/15 Redis
go使用Gin框架利用阿里云实现短信验证码功能
2021/08/04 Golang
MutationObserver在页面水印实现起到的作用详解
2022/07/07 Javascript