python selenium.webdriver 爬取政策文件的实现

 更新时间:2023年07月20日 10:14:48   作者:Cachel wood  
本文主要介绍了python selenium.webdriver 爬取政策文件的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

获取文章链接

获取中央人民政府网站链接,进入国务院政策文件库,分为国务院文件和部门文件(发改委、工信部、交通运输部、市场监督局、商务部等)

搜索关键词——汽车,即可得到按照 相关度 或者 时间 排列的政策文件。

批量爬取政策文件

批量获取文件链接并存入列表

应用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 None
    driver.quit()
    return link

数据处理

每次爬取单一文件信息并整理为dataframe,之后按行合并。

import pandas as pd
df = 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').T
    df = pd.concat([df,df1],axis=0)
df

导出为excel

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

到此这篇关于python selenium.webdriver 爬取政策文件的实现的文章就介绍到这了,更多相关python selenium.webdriver 爬取内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 详解Python装饰器由浅入深

    详解Python装饰器由浅入深

    装饰器的功能在很多语言中都有,名字也不尽相同,其实它体现的是一种设计模式,强调的是开放封闭原则,更多的用于后期功能升级而不是编写新的代码。本文尽量描述得浅显易懂,从最基础的内容讲起。
    2016-12-12
  • tensorflow 初始化未初始化的变量实例

    tensorflow 初始化未初始化的变量实例

    今天小编就为大家分享一篇tensorflow 初始化未初始化的变量实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-02-02
  • Python中处理字符串之endswith()方法的使用简介

    Python中处理字符串之endswith()方法的使用简介

    这篇文章主要介绍了Python中处理字符串之endswith()方法的使用,是Python入门中的基础知识,需要的朋友可以参考下
    2015-05-05
  • anaconda3安装及jupyter环境配置全教程

    anaconda3安装及jupyter环境配置全教程

    这篇文章主要介绍了anaconda3安装及jupyter环境配置全教程,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-08-08
  • Python flask项目入门教程

    Python flask项目入门教程

    flask 是一门使用 python 编写的后端框架,这篇文章主要介绍了Python flask项目入门教程,本文通过示例代码给大家介绍的非常详细,需要的朋友可以参考下
    2023-08-08
  • python中Pyqt5使用Qlabel标签进行视频播放

    python中Pyqt5使用Qlabel标签进行视频播放

    这篇文章主要介绍了python中Pyqt5使用Qlabel实现标签进行视频播放,QLabel是界面中的标签类,继承自QFrame类,提供文本和图像的显示,是一种展示控件,下文相关内容介绍需要的小伙伴可以参考一下
    2022-04-04
  • PyCharm调用matplotlib绘图时图像弹出问题详解

    PyCharm调用matplotlib绘图时图像弹出问题详解

    这篇文章主要给大家介绍了关于PyCharm调用matplotlib绘图时图像弹出问题的相关资料,文中通过图文介绍的非常详细,对大家学习或者使用PyCharm具有一定的参考学习价值,需要的朋友可以参考下
    2022-07-07
  • 关于Python中浮点数精度处理的技巧总结

    关于Python中浮点数精度处理的技巧总结

    双精度浮点数(double)是计算机使用的一种数据类型,使用 64 位(8字节) 来存储一个浮点数。下面这篇文章主要给大家总结介绍了关于Python中浮点数精度处理的技巧,需要的朋友可以参考借鉴,下面来一起看看吧。
    2017-08-08
  • PyCharm在win10的64位系统安装实例

    PyCharm在win10的64位系统安装实例

    给大家介绍一下在win10的64位系统中安装PyCharm的操作过程以及需要注意的地方。
    2017-11-11
  • python僵尸进程产生的原因

    python僵尸进程产生的原因

    这篇文章主要给大家讲解的是在Python中是如何产生僵尸进程的,以及如何清除僵尸进程的方法,有需要的小伙伴可以参考下
    2017-07-07

最新评论