python?selenium.webdriver?爬取政策文件的實(shí)現(xiàn)
獲取文章鏈接
獲取中央人民政府網(wǎng)站鏈接,進(jìn)入國務(wù)院政策文件庫,分為國務(wù)院文件和部門文件(發(fā)改委、工信部、交通運(yùn)輸部、市場監(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')
"""
爬蟲國務(wù)院文件
傳入鏈接,返還鏈接內(nèi)的全部內(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('汽車/國務(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中處理字符串之endswith()方法的使用簡介
這篇文章主要介紹了Python中處理字符串之endswith()方法的使用,是Python入門中的基礎(chǔ)知識(shí),需要的朋友可以參考下2015-05-05
anaconda3安裝及jupyter環(huán)境配置全教程
這篇文章主要介紹了anaconda3安裝及jupyter環(huán)境配置全教程,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-08-08
python中Pyqt5使用Qlabel標(biāo)簽進(jìn)行視頻播放
這篇文章主要介紹了python中Pyqt5使用Qlabel實(shí)現(xiàn)標(biāo)簽進(jìn)行視頻播放,QLabel是界面中的標(biāo)簽類,繼承自QFrame類,提供文本和圖像的顯示,是一種展示控件,下文相關(guān)內(nèi)容介紹需要的小伙伴可以參考一下2022-04-04
PyCharm調(diào)用matplotlib繪圖時(shí)圖像彈出問題詳解
這篇文章主要給大家介紹了關(guān)于PyCharm調(diào)用matplotlib繪圖時(shí)圖像彈出問題的相關(guān)資料,文中通過圖文介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用PyCharm具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2022-07-07
關(guān)于Python中浮點(diǎn)數(shù)精度處理的技巧總結(jié)
雙精度浮點(diǎn)數(shù)(double)是計(jì)算機(jī)使用的一種數(shù)據(jù)類型,使用 64 位(8字節(jié)) 來存儲(chǔ)一個(gè)浮點(diǎn)數(shù)。下面這篇文章主要給大家總結(jié)介紹了關(guān)于Python中浮點(diǎn)數(shù)精度處理的技巧,需要的朋友可以參考借鑒,下面來一起看看吧。2017-08-08
PyCharm在win10的64位系統(tǒng)安裝實(shí)例
給大家介紹一下在win10的64位系統(tǒng)中安裝PyCharm的操作過程以及需要注意的地方。2017-11-11

