Python爬蟲實現(xiàn)全國失信被執(zhí)行人名單查詢功能示例
本文實例講述了Python爬蟲實現(xiàn)全國失信被執(zhí)行人名單查詢功能。分享給大家供大家參考,具體如下:
一、需求說明
利用百度的接口,實現(xiàn)一個全國失信被執(zhí)行人名單查詢功能。輸入姓名,查詢是否在全國失信被執(zhí)行人名單中。

二、python實現(xiàn)
版本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)
#####################將數(shù)據(jù)組織成數(shù)據(jù)框###########################
data=pd.DataFrame({"name":iname,"IDCard":icard})
#################數(shù)據(jù)框去重####################################
data1=data.drop_duplicates()
print data1
print len(data1)
#########################寫出數(shù)據(jù)到excel#########################################
pd.DataFrame.to_excel(data1,"F:\\iname_icard_query.xlsx",header=True,encoding='gbk',index=False)
time2=time.time()
print u'ok,爬蟲結(jié)束!'
print u'總共耗時:'+str(time2-time1)+'s'
三、效果展示
"D:\Program Files\Python27\python.exe" D:/PycharmProjects/learn2017/全國失信被執(zhí)行人查詢.py
郭** 34122319790****5119
郭** 32032119881****2419
郭** 32032119881****2419
3
IDCard name
0 34122319790****5119 郭**
1 32032119881****2419 郭**
2
ok,爬蟲結(jié)束!
總共耗時: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)
#####################將數(shù)據(jù)組織成數(shù)據(jù)框###########################
# 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})
#################數(shù)據(jù)框去重####################################
# data1=data.drop_duplicates()
# print data1
# print len(data1)
detail_data1=detail_data.drop_duplicates()
# print detail_data1
# print len(detail_data1)
#########################寫出數(shù)據(jù)到excel#########################################
pd.DataFrame.to_excel(detail_data1,"F:\\iname_icard_query.xlsx",header=True,encoding='gbk',index=False)
time2=time.time()
print u'ok,爬蟲結(jié)束!'
print u'總共耗時:'+str(time2-time1)+'s'
更多關(guān)于Python相關(guān)內(nèi)容可查看本站專題:《Python Socket編程技巧總結(jié)》、《Python正則表達(dá)式用法總結(jié)》、《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python函數(shù)使用技巧總結(jié)》、《Python字符串操作技巧匯總》、《Python入門與進(jìn)階經(jīng)典教程》及《Python文件與目錄操作技巧匯總》
希望本文所述對大家Python程序設(shè)計有所幫助。
- Python實現(xiàn)爬取百度貼吧帖子所有樓層圖片的爬蟲示例
- python爬蟲_實現(xiàn)校園網(wǎng)自動重連腳本的教程
- python爬蟲 使用真實瀏覽器打開網(wǎng)頁的兩種方法總結(jié)
- 一個簡單的python爬蟲程序 爬取豆瓣熱度Top100以內(nèi)的電影信息
- python書籍信息爬蟲實例
- 零基礎(chǔ)寫python爬蟲之爬蟲編寫全記錄
- Python爬蟲框架Scrapy安裝使用步驟
- Python爬蟲模擬登錄帶驗證碼網(wǎng)站
- 零基礎(chǔ)寫python爬蟲之使用urllib2組件抓取網(wǎng)頁內(nèi)容
- 零基礎(chǔ)寫python爬蟲之使用Scrapy框架編寫爬蟲
- python模擬新浪微博登陸功能(新浪微博爬蟲)
相關(guān)文章
python selenium登錄豆瓣網(wǎng)過程解析
這篇文章主要介紹了python selenium登錄豆瓣網(wǎng)過程解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2019-08-08
Python實現(xiàn)同時兼容老版和新版Socket協(xié)議的一個簡單WebSocket服務(wù)器
這篇文章主要介紹了Python實現(xiàn)同時兼容老版和新版Socket協(xié)議的一個簡單WebSocket服務(wù)器,需要的朋友可以參考下2014-06-06
Python3.6筆記之將程序運行結(jié)果輸出到文件的方法
下面小編就為大家分享一篇Python3.6筆記之將程序運行結(jié)果輸出到文件的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-04-04
Python數(shù)據(jù)結(jié)構(gòu)之圖的應(yīng)用示例
這篇文章主要介紹了Python數(shù)據(jù)結(jié)構(gòu)之圖的應(yīng)用,結(jié)合實例形式分析了Python數(shù)據(jù)結(jié)構(gòu)中圖的定義與遍歷算法相關(guān)操作技巧,需要的朋友可以參考下2018-05-05

