我在爬取苏州市监局各区域个人独资企业注销登记文件的信息,代码如下:
import csv
import requests
from bs4 import BeautifulSoup
data_list = []
```python
```headers = {
'User-Agent': 'Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.110 Mobile Safari/537.36'
}
```python
```for page_number in range(26,34):
# 设置要请求的网页链接
url = 'http://szwj.jszwfw.gov.cn/jszwfw/bscx/itemlist/bszn.do?webId={}&iddept_yw_inf=11320584MB1676176K400013100300029&ql_kind=01&iddept_ql_inf=11320584MB1676176K4000131003000&iszx=%27.format(page_number)
# 请求网页
```python
``` messages_list_res = requests.get(url, headers=headers)
# 解析请求到的网页内容
bs = BeautifulSoup(messages_list_res.text, 'html.parser')
# 搜索网页中所有包含办理材料全部信息的 Tag
messages_list = bs.find('div', class_='newfloor', id = 'floor10')
# 用索引提取信息
material1 = messages_list.find_all('tr',class_='tsize')
for i in material1:
material=i.find_all('td')
# 提取材料序号
material_num = material[0].text
# 提取材料名称
material_name = material[1].text
# 提取来源渠道
material_sourse = material[3].text
# 提取纸质材料
material_copy = material[4].text
# 提取材料必要性
material_need = material[5].text
#提取表格链接
material2 = messages_list.find_all('a',class_='kbbg')
for kbbg in material2:
#提取空白表格链接
form1 = kbbg['onclick']
#提取示例样表
material3 = messages_list.find_all('a',class_='slyb')
for slyb in material3:
#提取空白表格链接
form2 = slyb['onclick']
# 将信息添加到字典中
material_dict = {
'序号': material_num,
'材料名称':material_name,
'来源渠道':material_sourse,
'纸质材料': material_copy,
'材料必要性': material_need,
'空白表格':form1,
'示例样表':form2
}
# 打印材料的信息
print(material_dict)
# 存储每地区信息
data_list.append(material_dict)
with open('material.csv', 'w', encoding='utf-8-sig') as f:
# 将文件对象转换成 DictWriter 对象
f_csv = csv.DictWriter(f, fieldnames=['序号', '材料名称', '来源渠道', '纸质材料', '材料必要性','空白表格','示例样表'])
# 写入表头与数据
f_csv.writeheader()
f_csv.writerows(data_list)
得出的表格如下:
只有序号4的文件,正常的信息是这样的:
我知道信息显示不全的原因了,因为只有材料4有链接,字典是一一对应的。但是怎么修改呢?