经过爬取到的数据类型为列表类型字符串,想要变成字典类型,可以通过函数来实现。
from bs4 import BeautifulSoup
from urllib import request
import xlwt
from pandas import DataFrame
import pandas as pd
# 获取数据
value = 1
#while value <= 98:
#value0 = str(value)
#url = "http://www.hs-bianma.com/hs_chapter_" + value0 + ".htm"
url="http://permit.mee.gov.cn/permitExt/xkgkAction!xkgk.action?xkgk=getxxgkContent&dataid=5441034853324763b39fbad3b66ad3fe"
'''此行可以自行更换代码用来汇集数据'''
response = request.urlopen(url)
html = response.read()
html = html.decode("utf-8")
bs = BeautifulSoup(html, 'lxml')
# 标题处理
title = bs.find_all('td')
#data_list_title = []
#for data in title:
#data_list_title.append(data.text.strip())
# 内容处理
content = bs.find_all('p')[1].text
# data_list_content = []
# for data in content:
#data_list_content.append(data.text.strip())
# new_list = [data_list_content[i:i + 16] for i in range(0, len(data_list_content), 16)]
content=content.strip() #删除字符串左边空格
content=content.split()#拆分字符串,通过指定分隔符对字符串进行分割,默认是空格。rstrip("\xa0\xa0\xa0\xa0\r\n\t\t\t")
#content=content.partition(":")
print(content)
print(type(content))
dict1 = {content[i]: content[i + 1] for i in range(0, len(content)-1, 2)} #将字符串变字典格式
print(type(dict1))
export=dict1
#将字典列表转换为DataFrame
pf = pd.DataFrame(list(export))
#指定字段顺序
order = ['生产经营场所地址','行业类别','所在地区','发证机关']
print(order)
#pf=pf[order]
#将列名替换为中文
columns_map = {
'生产经营场所地址':'生产经营场所地址',
'行业类别':'行业类别',
'所在地区':'所在地区',
'发证机关':'发证机关'
}
pf.rename(columns = columns_map,inplace = True)
#指定生成的Excel表格名称
file_path = pd.ExcelWriter('name.xlsx')
#替换空单元格
pf.fillna(' ',inplace = True)
#输出
pf.to_excel(file_path,encoding = 'utf-8',index = False)
#保存表格
file_path.save()