#运行前,先删除data.csv文件
import requests
from bs4 import BeautifulSoup
import time
import pandas as pd
创建data_list空列表,用于存储网站解析出来的标准信息
data_list = []
从工标网网站http://www.csres.com/sort/industry.jsp查询不同行业标准的网址头
#url1 = “http://www.csres.com/sort/industry/002009_” #建筑工业标准网址头,目前共41页,1620条
url1 = “http://www.csres.com/sort/industry/002007_” #化工标准网址头,目前共128页,5102条
#url1 = “http://www.csres.com/sort/industry/002061_” #建筑材料行业标准网址头,目前共33页,1307条
从工标网网站http://www.csres.com/sort/industry.jsp查询不同行业标准的网址页面数量,生成url,便利所有url
for i in range(1,129): #结束值要比网页数量值+1
url = f"{url1}{i}.html"
#print(url)
#使用BeautifulSoup解析工标网网站,需要设置请求头
# 设置请求头,模拟浏览器访问
headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36"
}
# 发送请求获取网页内容
response = requests.get(url, headers=headers)
html_content = response.text# 使用BeautifulSoup解析网页
soup = BeautifulSoup(html_content, 'html.parser')
#print(soup)# 找到对应的tr标签
tr_tags = soup.find_all('tr', attrs={'bgcolor': '#FFFFFF'})# 提取各个单元格的文本内容,以列表形式存储for tr_tag in tr_tags:data = []td_tags = tr_tag.find_all('td')data.append(td_tags[0].text.strip())data.append(td_tags[1].text.strip())data.append(td_tags[2].text.strip())data.append(td_tags[3].text.strip())data.append(td_tags[4].text.strip())data_list.append(data)#打印显示data_list的内容
for item in data_list:print(item)# 将data_list列表中内容,存储到csv文件中
column_names = ["标准编号", "标准名称", "发布部门", "实施日期", "状态"]
df = pd.DataFrame(data_list, columns=column_names)# 等待页面加载完成,可根据实际情况调整等待时间
time.sleep(5)
#将df中的内容写入data.csv文件
df.to_csv(‘data.csv’, index = False, encoding=‘utf-8-sig’,mode = ‘a’)
print(df)