通过python爬取动态加载的网页数据,并写入pandas用于后面分析 最近开始学习爬虫,通过博客记录自己的学习成果,在此特别感谢B站的波波老师,B站账号:路飞学城IT 这次爬取的网站是:化妆品生产许可信息管理系统服务平台(http://scxk.nmpa.gov.cn:81/xk/#) 这个网站的数据是动态加载出来的 使用request请求这个网站是得到不了数据的,我们可以通过调出网页的相关代码之后,利用ctrl+f 搜寻网页数据的存放地址 找到真正的可以请求得到的url,对其发起请求可以得到里面的数据,打开这个url对应的相应数据response,我们可以发现需要的数据在里面。
接下来是代码的呈现
import requests
import pandas as pd
url = 'http://scxk.nmpa.gov.cn:81/xk/itownet/portalAction.do?method=getXkzsList'
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:90.0) Gecko/20100101 Firefox/90.0'
}
df = pd.DataFrame(columns=['企业名称','发证机关','发证日期','有效期至'])
page_num = int(input('输入页数:'))
try:
for i in range(1,page_num):
data = {
'on':'true',
'page':i,
'pageSize':15,
'productName':'',
'conditionType':1,
'applyname':'',
'applysn':'' }
try:
json_ids = requests.post(url=url,headers=headers,data=data).json()
except:
pass
for dic in json_ids['list']:
EPS_NAME = []
XC_DATE = []
QF_MANAGER_NAME = []
XK_DATE = []
EPS_NAME.append(dic['EPS_NAME'])
XK_DATE.append(dic['XK_DATE'])
QF_MANAGER_NAME.append(dic['QF_MANAGER_NAME'])
XC_DATE.append(dic['XC_DATE'])
df1 = pd.DataFrame({'企业名称':EPS_NAME,'发证日期':XC_DATE,'发证机关':QF_MANAGER_NAME,'有效期至':XK_DATE})
df = df.append(df1,ignore_index=True)
print(f'第{i}页爬取成功!')
except :
pass
finally:
df.to_csv('化妆品生产许可证信息系统2.csv',encoding='utf-8')
自己主要是发现,学了之后总是忘记,所有想通过写一些博客的来督促自己学习,可能代码也有错误和冗余,有问题可以私信一起学习
|