当前位置:Gxlcms > Python > Python爬虫实现全国失信被执行人名单查询功能示例

Python爬虫实现全国失信被执行人名单查询功能示例

时间:2021-07-01 10:21:17 帮助过:166人阅读

这篇文章主要介绍了Python爬虫实现全国失信被执行人名单查询功能,涉及Python爬虫相关网络接口调用及json数据转换等相关操作技巧,需要的朋友可以参考下

本文实例讲述了Python爬虫实现全国失信被执行人名单查询功能。分享给大家供大家参考,具体如下:

一、需求说明

利用百度的接口,实现一个全国失信被执行人名单查询功能。输入姓名,查询是否在全国失信被执行人名单中。

二、python实现

版本1:

  1. # -*- coding:utf-8*-
  2. import sys
  3. reload(sys)
  4. sys.setdefaultencoding('utf-8')
  5. import time
  6. import requests
  7. time1=time.time()
  8. import pandas as pd
  9. import json
  10. iname=[]
  11. icard=[]
  12. def person_executed(name):
  13. for i in range(0,30):
  14. try:
  15. url="https://sp0.baidu.com/8aQDcjqpAAV3otqbppnN2DJv/api.php?resource_id=6899" \
  16. "&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" \
  17. "&cardNum=&" \
  18. "iname="+str(name)+ \
  19. "&areaName=" \
  20. "&pn="+str(i*10)+ \
  21. "&rn=10" \
  22. "&ie=utf-8&oe=utf-8&format=json"
  23. html=requests.get(url).content
  24. html_json=json.loads(html)
  25. html_data=html_json['data']
  26. for each in html_data:
  27. k=each['result']
  28. for each in k:
  29. print each['iname'],each['cardNum']
  30. iname.append(each['iname'])
  31. icard.append(each['cardNum'])
  32. except:
  33. pass
  34. if __name__ == '__main__':
  35. name="郭**"
  36. person_executed(name)
  37. print len(iname)
  38. #####################将数据组织成数据框###########################
  39. data=pd.DataFrame({"name":iname,"IDCard":icard})
  40. #################数据框去重####################################
  41. data1=data.drop_duplicates()
  42. print data1
  43. print len(data1)
  44. #########################写出数据到excel#########################################
  45. pd.DataFrame.to_excel(data1,"F:\\iname_icard_query.xlsx",header=True,encoding='gbk',index=False)
  46. time2=time.time()
  47. print u'ok,爬虫结束!'
  48. 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:

  1. # -*- coding:utf-8*-
  2. import sys
  3. reload(sys)
  4. sys.setdefaultencoding('utf-8')
  5. import time
  6. import requests
  7. time1=time.time()
  8. import pandas as pd
  9. import json
  10. iname=[]
  11. icard=[]
  12. courtName=[]
  13. areaName=[]
  14. caseCode=[]
  15. duty=[]
  16. performance=[]
  17. disruptTypeName=[]
  18. publishDate=[]
  19. def person_executed(name):
  20. for i in range(0,30):
  21. try:
  22. url="https://sp0.baidu.com/8aQDcjqpAAV3otqbppnN2DJv/api.php?resource_id=6899" \
  23. "&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" \
  24. "&cardNum=&" \
  25. "iname="+str(name)+ \
  26. "&areaName=" \
  27. "&pn="+str(i*10)+ \
  28. "&rn=10" \
  29. "&ie=utf-8&oe=utf-8&format=json"
  30. html=requests.get(url).content
  31. html_json=json.loads(html)
  32. html_data=html_json['data']
  33. for each in html_data:
  34. k=each['result']
  35. for each in k:
  36. print each['iname'],each['cardNum'],each['courtName'],each['areaName'],each['caseCode'],each['duty'],each['performance'],each['disruptTypeName'],each['publishDate']
  37. iname.append(each['iname'])
  38. icard.append(each['cardNum'])
  39. courtName.append(each['courtName'])
  40. areaName.append(each['areaName'])
  41. caseCode.append(each['caseCode'])
  42. duty.append(each['duty'])
  43. performance.append(each['performance'])
  44. disruptTypeName.append(each['disruptTypeName'])
  45. publishDate.append(each['publishDate'])
  46. except:
  47. pass
  48. if __name__ == '__main__':
  49. name="郭**"
  50. person_executed(name)
  51. print len(iname)
  52. #####################将数据组织成数据框###########################
  53. # data=pd.DataFrame({"name":iname,"IDCard":icard})
  54. detail_data=pd.DataFrame({"name":iname,"IDCard":icard,"courtName":courtName,"areaName":areaName,"caseCode":caseCode,"duty":duty,"performance":performance,\
  55. "disruptTypeName":disruptTypeName,"publishDate":publishDate})
  56. #################数据框去重####################################
  57. # data1=data.drop_duplicates()
  58. # print data1
  59. # print len(data1)
  60. detail_data1=detail_data.drop_duplicates()
  61. # print detail_data1
  62. # print len(detail_data1)
  63. #########################写出数据到excel#########################################
  64. pd.DataFrame.to_excel(detail_data1,"F:\\iname_icard_query.xlsx",header=True,encoding='gbk',index=False)
  65. time2=time.time()
  66. print u'ok,爬虫结束!'
  67. print u'总共耗时:'+str(time2-time1)+'s'

相关推荐:

Python爬虫实现取名字的代码实例

python爬虫实现教程转换成 PDF 电子书

以上就是Python爬虫实现全国失信被执行人名单查询功能示例的详细内容,更多请关注Gxl网其它相关文章!

人气教程排行