python?selenium.webdriver?爬取政策文件的實(shí)現(xiàn)
獲取文章鏈接
獲取中央人民政府網(wǎng)站鏈接,進(jìn)入國(guó)務(wù)院政策文件庫(kù),分為國(guó)務(wù)院文件和部門文件(發(fā)改委、工信部、交通運(yùn)輸部、市場(chǎng)監(jiān)督局、商務(wù)部等)

搜索關(guān)鍵詞——汽車,即可得到按照 相關(guān)度 或者 時(shí)間 排列的政策文件。

批量爬取政策文件
批量獲取文件鏈接并存入列表
應(yīng)用selenium爬取文件信息
利用xpath定位鏈接、索引號(hào)、標(biāo)題、發(fā)文機(jī)關(guān)、發(fā)文字號(hào)、主題分類、成文日期、發(fā)布日期、文件內(nèi)容等信息。
右側(cè)通過光標(biāo)定位各部分信息,右鍵點(diǎn)擊 copy 并選擇 copy xpath即可復(fù)制xpath路徑。

完整代碼
from selenium import webdriver
from urllib.error import HTTPError
from selenium.webdriver.common.by import By #selenium新版本寫法
import warnings
warnings.filterwarnings('ignore')
"""
爬蟲國(guó)務(wù)院文件
傳入鏈接,返還鏈接內(nèi)的全部?jī)?nèi)容,生成字典
"""
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—現(xiàn)有的文件數(shù)
link['鏈接'] = url # 原文鏈接
#time.sleep(3)
link['索引號(hào)'] = 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 # 索引號(hào)
link['標(biāo)題'] = 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 # 標(biāo)題
link['發(fā)文機(jī)關(guān)'] = 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 # 發(fā)文機(jī)關(guān)
link['發(fā)文字號(hào)'] = 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 # 發(fā)文字號(hào)
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['發(fā)布日期'] = driver.find_element(By.XPATH,
'/html/body/div[4]/div/div[2]/div[1]/table/tbody/tr/td/table/tbody/tr[4]/td[4]') # 發(fā)布日期
link['文件內(nèi)容'] = driver.find_element(By.XPATH,"http://*[@id='UCAP-CONTENT']").text # 內(nèi)容
with open('汽車/國(guó)務(wù)院文件/'+link['標(biāo)題']+'.txt','w',encoding='utf-8') as file:
file.write(link['文件內(nèi)容'])
except HTTPError:
return None
driver.quit()
return link數(shù)據(jù)處理
每次爬取單一文件信息并整理為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
導(dǎo)出為excel
df.to_excel('汽車行業(yè)政策文本研究.xlsx',index=False)到此這篇關(guān)于python selenium.webdriver 爬取政策文件的實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)python selenium.webdriver 爬取內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python實(shí)現(xiàn)批量轉(zhuǎn)換文件編碼的方法
這篇文章主要介紹了Python實(shí)現(xiàn)批量轉(zhuǎn)換文件編碼的方法,涉及Python針對(duì)文件的遍歷及編碼轉(zhuǎn)換實(shí)現(xiàn)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-07-07
如何用python實(shí)現(xiàn)一個(gè)HTTP連接池
這篇文章主要介紹了如何用python實(shí)現(xiàn)一個(gè)HTTP連接池的步驟,幫助大家更好的理解和使用python,感興趣的朋友可以了解下2021-01-01
如何使用selenium和requests組合實(shí)現(xiàn)登錄頁面
這篇文章主要介紹了如何使用selenium和requests組合實(shí)現(xiàn)登錄頁面,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-02-02
基于Python+PyQt5實(shí)現(xiàn)串口數(shù)據(jù)采集和顯示
文章介紹了如何使用Python和PyQt5實(shí)現(xiàn)串口數(shù)據(jù)采集和實(shí)時(shí)通信,首先,文章詳細(xì)描述了環(huán)境搭建步驟,包括Python和PyQt5的安裝和配置,文章詳細(xì)說明了程序?qū)崿F(xiàn)的各個(gè)步驟,包括串口設(shè)置、數(shù)據(jù)讀取、數(shù)據(jù)發(fā)送和報(bào)文解析等,需要的朋友可以參考下2025-05-05
python實(shí)現(xiàn)逢七拍腿小游戲的思路詳解
這篇文章主要介紹了python實(shí)現(xiàn)逢七拍腿小游戲的思路,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-05-05
python中利用zfill方法自動(dòng)給數(shù)字前面補(bǔ)0
python中有一個(gè)zfill方法用來給字符串前面補(bǔ)0,非常不錯(cuò),下面小編給大家分享了實(shí)例代碼,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友參考下吧2018-04-04
Matplotlib直方圖繪制中的參數(shù)bins和rwidth的實(shí)現(xiàn)
本文主要介紹了Matplotlib直方圖繪制中的參數(shù)bins和rwidth的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-02-02
python函數(shù)enumerate,operator和Counter使用技巧實(shí)例小結(jié)
這篇文章主要介紹了python函數(shù)enumerate,operator和Counter使用技巧,結(jié)合實(shí)例形式總結(jié)分析了python內(nèi)置函數(shù)enumerate,operator和Counter基本功能、原理、用法及操作注意事項(xiàng),需要的朋友可以參考下2020-02-02

