爬蟲獲取失信被執行人信息

失信被執行人信息

失信被執行人信息分兩部分:
個人信息出生月份及日期四位數是掩碼展示,本博文爬取的是原始的掩碼信息,如果想要進一步獲取到不含掩碼的個人身份信息,也不難,只是工作量大點而已

  1. 月份是01-12,日期根據月份拼接,需要額外365或者366次校驗
  2. 根據身份證號碼規則
    1. 將前面的身份證號碼17位數分別乘以不同的係數。從第一位到第十七位的係數分別爲:7 9 10 5 8 4 2 1 6 3 7 9 10 5 8 4 2 ;
    2. 將這17位數字和係數相乘的結果相加;
    3. 用加出來和除以11,看餘數是多少;
    4. 餘數只可能有0 1 2 3 4 5 6 7 8 9 10這11個數字。其分別對應的最後一位身份證的號碼爲1 0 X 9 8 7 6 5 4 3 2;
      校驗合格後的身份證信息傳入進行二次驗證,有效減少請求量

組織機構代碼明文展示

代碼實現:

# 處理請求地址
def url_num(n):
    return "https://sp0.baidu.com/8aQDcjqpAAV3otqbppnN2DJv/api.php?resource_id=6899&query=%E8%80%81%E8%B5%96&pn=" + str(n*10) + "&rn=10&ie=utf-8&oe=utf-8&format=json"

# 請求報文頭
header = {
"Accept": "*/*",
"Accept-Encoding": "gzip, deflate, br",
"Accept-Language": "zh-CN,zh;q=0.9",
"Connection": "keep-alive",
"Host": "sp0.baidu.com",
"Referer": "https://www.baidu.com/s?ie=utf-8&f=8&rsv_bp=1&rsv_idx=1&tn=baidu&wd=%E5%A4%B1%E4%BF%A1%E8%A2%AB%E6%89%A7%E8%A1%8C%E4%BA%BA&oq=%25E5%25A4%25B1%25E4%25BF%25A1%25E4%25BA%25BA%25E5%2591%2598&rsv_pq=9efd8d970001d440&rsv_t=d4a5qIxeOOLmND3RbsmCZd1aIVVsGkSbXjRz9KKpqlj4SCwtPAklEOUMF04&rqlang=cn&rsv_enter=1&rsv_dl=tb&rsv_sug3=21&rsv_sug1=23&rsv_sug7=100&bs=%E5%A4%B1%E4%BF%A1%E4%BA%BA%E5%91%98",
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.110 Safari/537.36"
}

# 返回json格式,轉爲字典,字典列表中遞歸取值
for j in data_dict['data'][0]['result']:
	print(j["_update_time"], j["age"], j["areaName"],j["areaNameNew"],j["cardNum"],j["caseCode"],j["courtName"],j["disruptTypeName"],j["duty"],j["gistId"],j["gistUnit"],j["iname"],j["performance"],j["publishDate"],j["sexy"])
	csv_writer.writerow([j["_update_time"], j["age"], j["areaName"],j["areaNameNew"],j["cardNum"],j["caseCode"],j["courtName"],j["disruptTypeName"],j["duty"],j["gistId"],j["gistUnit"],j["iname"],j["performance"],j["publishDate"],j["sexy"]])

坑:

  1. IndexError: list index out of range
    請求過於頻繁了,設置等待,或者啓用代理,把當前的請求url重新放到請求池裏

  2. 注意去重,每次響應,有大量重複,浪費內存或者頻繁IO浪費時間

其他沒有了,還是很簡單的。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章