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中pandas.DataFrame的简单操作方法(创建、索引、增添与删除)
Mar 12 Python
详解Golang 与python中的字符串反转
Jul 21 Python
Python 由字符串函数名得到对应的函数(实例讲解)
Aug 10 Python
python机器学习之神经网络(二)
Dec 20 Python
python函数式编程学习之yield表达式形式详解
Mar 25 Python
Python使用Matplotlib模块时坐标轴标题中文及各种特殊符号显示方法
May 04 Python
Python实现的多项式拟合功能示例【基于matplotlib】
May 15 Python
Python实现按逗号分隔列表的方法
Oct 23 Python
python 爬虫百度地图的信息界面的实现方法
Oct 27 Python
python如何实现图片压缩
Sep 11 Python
Django生成数据库及添加用户报错解决方案
Oct 09 Python
Python 使用office365邮箱的示例
Oct 29 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实现的二分查找算法示例
2017/06/20 PHP
详解php命令注入攻击
2019/04/06 PHP
JavaScript 基于原型的对象(创建、调用)
2009/10/16 Javascript
关于firefox的ElementTraversal 接口 使用说明
2010/11/11 Javascript
Javascript基础知识(二)事件
2014/09/29 Javascript
jQuery实现textarea自动增长宽高的方法
2015/12/18 Javascript
JavaScript Promise 用法
2016/06/14 Javascript
picLazyLoad 实现图片延时加载(包含背景图片)
2016/07/21 Javascript
javaScript 事件绑定、事件冒泡、事件捕获和事件执行顺序整理总结
2016/10/10 Javascript
JavaScript实现多栏目切换效果
2016/12/12 Javascript
基于vue实现分页/翻页组件paginator示例
2017/03/09 Javascript
vue中v-model的应用及使用详解
2018/06/27 Javascript
JS数组中对象去重操作示例
2019/06/04 Javascript
js 实现 list转换成tree的方法示例(数组到树)
2019/08/18 Javascript
解决vue里a标签值解析变量,跳转页面,前面加默认域名端口的问题
2020/07/22 Javascript
python自动化测试之从命令行运行测试用例with verbosity
2014/09/28 Python
python跳出双层for循环的解决方法
2019/06/24 Python
Django实现发送邮件功能
2019/07/18 Python
python pyinstaller打包exe报错的解决方法
2019/11/02 Python
Django Form设置文本框为readonly操作
2020/07/03 Python
Python pip安装第三方库实现过程解析
2020/07/09 Python
如何在.net Winform里面显示PDF文档
2012/09/11 面试题
优秀体育委员自荐书
2014/01/31 职场文书
《长相思》听课反思
2014/04/10 职场文书
政工例会汇报材料
2014/08/26 职场文书
党员群众路线对照检查材料思想汇报
2014/09/17 职场文书
考试作弊万能检讨书
2014/10/19 职场文书
2014年班务工作总结
2014/12/02 职场文书
拾金不昧通报表扬范文
2015/05/05 职场文书
员工年度工作总结2015
2015/05/18 职场文书
2015秋季开学典礼主持词
2015/07/16 职场文书
先进基层党组织事迹材料2016
2016/02/29 职场文书
党风廉政建设心得体会
2019/05/21 职场文书
85句关于理想的名言警句大全
2019/08/22 职场文书
JavaScript实现优先级队列
2021/12/06 Javascript
Win11如何默认打开软件界面最大化?Win11默认打开软件界面最大化的方法
2022/07/15 数码科技