爬取藥監總局中的企業詳情資料,每一家企業詳情頁對應的詳情資料
-需求:爬取藥監總局中的企業詳情資料,每一家企業詳情頁對應的詳情資料(爬取前5頁)
-url:http://scxk.nmpa.gov.cn:81/xk/
-分析:
–企業詳情資料是否為動態加載資料(一般都為動態)?
-基于抓包工具進行區域搜索,
-定位到的資料包提取的
-url:http://scxk.nmpa.gov.cn:81/xk/itownet/portalAction.do?method=getXkzsById
-url:http://scxk.nmpa.gov.cn:81/xk/itownet/portalAction.do?method=getXkzsById
-請求引數
-id: ff83aff95c5541cdab5ca6e847514f88
-id: 07b61ec8709448e4aa3260c3e2b02f0e
–結論:
每一家企業詳情資料對應的請求的url和請求方式都是一樣的,只有請求引數id的值不一樣,
如果我們可以將每一家企業的id捕獲,則可以將每一家企業詳情資料進行爬取
—-捕獲企業id
-企業的id表示的就是唯一的一家企業,我們就猜測企業id可能和企業名稱捆綁在一起
-在首頁中會有不同的企業名稱,則我們就基于抓包工具對首頁的資料包進行全域搜索(企業名稱)
-url:http://scxk.nmpa.gov.cn:81/xk/itownet/portalAction.do?method=getXkzsList
-方式:post
-請求引數:
on=true&page=1&pageSize=15&productName=&conditionType=1&applyna me=&applysn=
import requests
headers={
"User-Agent":''
}
#獲取每一家企業的id值,去首頁分析查找對應企業的id值
url='http://scxk.nmpa.gov.cn:81/xk/itownet/portalAction.do?method=getXkzsList'
data={
'on': 'true',
'page': '1',
'pageSize': '15',
'productName':'',
'conditionType': '1',
'applyname':' ',
'applysn':' ',
}
response=requests.post(url=url,headers=headers,data=data)
all_company_list=response.json()['list']
for dic in all_company_list:
_id=dic['ID']
# print(_id)
#將id作為請求企業詳情資料url的請求引數
detail_url='http://scxk.nmpa.gov.cn:81/xk/itownet/portalAction.do?method=getXkzsById'
data={
'id':_id
}
response=requests.post(url=detail_url,headers=headers,data=data)
company_detail_dic=response.json()
person_name=company_detail_dic['businessPerson']
addr=company_detail_dic['epsProductAddress']
print(person_name,addr)

捕獲多頁資料(遍歷page)
#捕獲多頁資料(遍歷page)
import requests
headers={
"User-Agent":''
}
#獲取每一家企業的id值,去首頁分析查找對應企業的id值
url='http://scxk.nmpa.gov.cn:81/xk/itownet/portalAction.do?method=getXkzsList'
for page in range(1,6):
data={
'on': 'true',
'page': str(page),
'pageSize': '15',
'productName':'',
'conditionType': '1',
'applyname':' ',
'applysn':' ',
}
response=requests.post(url=url,headers=headers,data=data)
all_company_list=response.json()['list']
for dic in all_company_list:
_id=dic['ID']
# print(_id)
#將id作為請求企業詳情資料url的請求引數
detail_url='http://scxk.nmpa.gov.cn:81/xk/itownet/portalAction.do?method=getXkzsById'
data={
'id':_id
}
response=requests.post(url=detail_url,headers=headers,data=data)
company_detail_dic=response.json()
person_name=company_detail_dic['businessPerson']
addr=company_detail_dic['epsProductAddress']
print(person_name,addr)

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/226795.html
標籤:其他
