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

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

批量爬取政策文件
批量獲取文件鏈接并存入列表
應用selenium爬取文件信息
利用xpath定位鏈接、索引號、標題、發(fā)文機關、發(fā)文字號、主題分類、成文日期、發(fā)布日期、文件內(nèi)容等信息。
右側通過光標定位各部分信息,右鍵點擊 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')
"""
爬蟲國務院文件
傳入鏈接,返還鏈接內(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['索引號'] = 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['發(fā)文機關'] = 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ā)文機關
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[2]").text # 發(fā)文字號
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('汽車/國務院文件/'+link['標題']+'.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
導出為excel
df.to_excel('汽車行業(yè)政策文本研究.xlsx',index=False)到此這篇關于python selenium.webdriver 爬取政策文件的實現(xiàn)的文章就介紹到這了,更多相關python selenium.webdriver 爬取內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Python中處理字符串之endswith()方法的使用簡介
這篇文章主要介紹了Python中處理字符串之endswith()方法的使用,是Python入門中的基礎知識,需要的朋友可以參考下2015-05-05
anaconda3安裝及jupyter環(huán)境配置全教程
這篇文章主要介紹了anaconda3安裝及jupyter環(huán)境配置全教程,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-08-08
PyCharm調(diào)用matplotlib繪圖時圖像彈出問題詳解
這篇文章主要給大家介紹了關于PyCharm調(diào)用matplotlib繪圖時圖像彈出問題的相關資料,文中通過圖文介紹的非常詳細,對大家學習或者使用PyCharm具有一定的參考學習價值,需要的朋友可以參考下2022-07-07

