python selenium.webdriver 爬取政策文件

news/2024/11/23 23:49:20/

文章目录

        • 获取文章链接
        • 批量爬取政策文件
          • 应用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(options=options)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,"//*[@id='UCAP-CONTENT']").text  # 内容with open('汽车/国务院文件/'+link['标题']+'.txt','w',encoding='utf-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',encoding='utf-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],axis=0)df

在这里插入图片描述

导出为excel
df.to_excel('汽车行业政策文本研究.xlsx',index=False)

http://www.ppmy.cn/news/903943.html

相关文章

Mysql数据库的管理

文章目录 一、数据库的基本操作1、登录数据库2、创建数据库并进入数据库3、查看数据库结构4、常用的数据库类型5、char和varchar的区别 二、Mysql数据文件三、SQL语句1、SQL语言分类2、DDL数据定义语言1.创建新的数据库2.创建新的表、查看数据表的结构3.删除指定数据表4.删除指…

如何压缩pdf文件 把pdf文件变小

许多文档资料在进行传输时都是用PDF格式,虽然PDF文件本身就是易传输的文档,但是有些文件资料,尤其图片内容较多文档,动则几十兆甚至上百兆,这在传输文件时极不方便。而且文件过大,在打开文件时可能会使系统…

微信小程序超级占内存_微信小程序占内存吗?

展开全部 视频介绍: 微信全新功能“小程序”正式开放了。不过62616964757a686964616fe59b9ee7ad9431333363363432不少网友对于小程序还是有不少的疑问,其中最让网友关心的问题就是小程序究竟占用多少手机内存空间呢? 首先看看官方怎么说。 从…

关于U盘制作启动盘后内存变小问题的解决

不需任何工具,只需要输入几个简单命令即可 1.U盘插入电脑然后运行windows的命令窗口,命令窗口打开方式winR后输入 cmd或点击开始菜单>>运行>>输入cmd 2.在命令行输入diskpart然后回车,如图所示 3.输入命令list disk然后回车&…

手机gif图片怎么压缩变小?gif动图怎样缩小?

相信很多小伙伴遇到过这种情况,手机gif动图上传到一些分享平台时,因为gif动图过大而上传受限,那我们应该怎么将手机gif动图变小呢?gif动图和静态图片不一样,不能按照普通的方法压缩gif大小,有时压缩之后画面…

Android中一张图片占用的内存大小

最近面试过程中发现对Android中一些知识有些模棱两可,之前总是看别人的总结,自己没去实践过,这两天对个别问题进行专门研究 探讨:如何计算Android中一张图片占据内存的大小 解释:此处说的占据内存,是APP加…

android 手机存储大小设置,如何让手机内存变大?内存不足解决方法【详解】

在购买手机的时候,有些人就选择了一些内存比较大的机型,避免日后自己因手机内存小而带来不好的体验。但是使用使用中人们就会发现,再多的手机内存也不够用,随着软件不断升级、手机中使用的垃圾增多等等,人们也开始发现手机中的内存越来越小了。手机内存一小对正常使用肯定…

微信小程序超级占内存_小程序丨微信小程序占内存大吗?微信小程序消耗流量大吗?...

微信小程序占内存怎么样?微信小程序内存占用会不会过大?微信小程序消耗流量大吗?是否感觉微信小程序消耗流量非常快啊?近日小程序逐渐开放8个入口,许多新用户初次接触了小程序,他们会因为担心微信小程序耗流量太大,微信小程序占内存太多之类的问题而驻足观望吗?今天,第…