建设网站的流程图,建筑人才招聘信息网,制作详情页用什么软件,工商服务平台文章目录 获取文章链接批量爬取政策文件应用selenium爬取文件信息数据处理导出为excel 获取文章链接
获取中央人民政府网站链接#xff0c;进入国务院政策文件库#xff0c;分为国务院文件和部门文件#xff08;发改委、工信部、交通运输部、市场监督局、商务部等#xff… 文章目录 获取文章链接批量爬取政策文件应用selenium爬取文件信息数据处理导出为excel 获取文章链接
获取中央人民政府网站链接进入国务院政策文件库分为国务院文件和部门文件发改委、工信部、交通运输部、市场监督局、商务部等 搜索关键词——汽车即可得到按照 相关度 或者 时间 排列的政策文件。
批量爬取政策文件
批量获取文件链接并存入列表
应用selenium爬取文件信息
利用xpath定位链接、索引号、标题、发文机关、发文字号、主题分类、成文日期、发布日期、文件内容等信息。
右侧通过光标定位各部分信息右键点击 copy 并选择 copy xpath即可复制xpath路径。
完整代码
from selenium import webdriver
from urllib.error import HTTPError
from selenium.webdriver.common.by import By #selenium新版本写法
import warnings
warnings.filterwarnings(ignore)
爬虫国务院文件
传入链接返还链接内的全部内容生成字典def get_info(id,url):options webdriver.ChromeOptions()options.add_argument(--headless)options.add_argument(--no-sandbox)options.add_argument(--disable-dev-shm-usage)driver webdriver.Chrome(optionsoptions)link {}driver.get(url)try:link[文章ID] id # 序列ID从0—现有的文件数link[链接] url # 原文链接#time.sleep(3)link[索引号] driver.find_element(By.XPATH,/html/body/div[4]/div/div[2]/div[1]/table/tbody/tr/td/table/tbody/tr[1]/td[2]).text # 索引号link[标题] driver.find_element(By.XPATH,/html/body/div[4]/div/div[2]/div[1]/table/tbody/tr/td/table/tbody/tr[3]/td[2]).text # 标题link[发文机关] driver.find_element(By.XPATH,/html/body/div[4]/div/div[2]/div[1]/table/tbody/tr/td/table/tbody/tr[2]/td[2]).text # 发文机关link[发文字号] driver.find_element(By.XPATH,/html/body/div[4]/div/div[2]/div[1]/table/tbody/tr/td/table/tbody/tr[4]/td[2]).text # 发文字号link[主题分类] driver.find_element(By.XPATH,/html/body/div[4]/div/div[2]/div[1]/table/tbody/tr/td/table/tbody/tr[1]/td[4]).text # 主题分类link[成文日期] driver.find_element(By.XPATH,/html/body/div[4]/div/div[2]/div[1]/table/tbody/tr/td/table/tbody/tr[2]/td[4]).text # 成文日期link[发布日期] driver.find_element(By.XPATH,/html/body/div[4]/div/div[2]/div[1]/table/tbody/tr/td/table/tbody/tr[4]/td[4]) # 发布日期link[文件内容] driver.find_element(By.XPATH,//*[idUCAP-CONTENT]).text # 内容with open(汽车/国务院文件/link[标题].txt,w,encodingutf-8) as file:file.write(link[文件内容])except HTTPError:return Nonedriver.quit()return link数据处理
每次爬取单一文件信息并整理为dataframe之后按行合并。
import pandas as pddf pd.DataFrame()
with open(link1.txt,r,encodingutf-8) as f:links f.readlines()for id,url in enumerate(links):url url.strip(\n)print(url)result get_info(id,url)df1 pd.DataFrame.from_dict(result,index).Tdf pd.concat([df,df1],axis0)df导出为excel
df.to_excel(汽车行业政策文本研究.xlsx,indexFalse)