电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術(shù)文章
文章詳情頁

Python selenium如何打包靜態(tài)網(wǎng)頁并下載

瀏覽:3日期:2022-07-14 11:46:11

需求:單純的將page.source寫入文件的方式,會(huì)導(dǎo)致一些圖片無法顯示,對(duì)于google瀏覽器,直接將頁面打包下載成一個(gè)mhtml格式的文件,則可以進(jìn)行離線下載。對(duì)應(yīng)python selenium 微信公眾號(hào)歷史文章隨手一點(diǎn)就返回首頁?郁悶之下只好將他們都下載下來。:https://www.jb51.net/article/193111.htm

遇到的問題:

1、單純使用webdriver.ActionChains無法完成下載動(dòng)作,未能操作windows窗口。

2、沒有找到相關(guān)能直接下載.mhtml的命名接口。

3、pywin32置頂窗口的使用不順利。

解決思路:

1、使用selnium打開瀏覽器,不要操作,讓其保持置頂

2、使用pyautogui、pyperclip操作鍵盤、鼠標(biāo)、剪切板進(jìn)行下載文件。

準(zhǔn)備材料:

需要將自動(dòng)化操作的一些圖片截取下來,以作為后期圖片匹配使用。

Python selenium如何打包靜態(tài)網(wǎng)頁并下載

實(shí)現(xiàn):

1、打開爬取好的鏈接,遍歷所有需要下載的頁面

# 讀取文件filename = r’data/01 爬取微信公眾號(hào)歷史文章/urls 二律背反的一燈如豆-out.xlsx’df = pd.read_excel(filename,dtype=object)df = df.reindex(columns=[’日期’, ’標(biāo)題’, ’原創(chuàng)’, ’地址’,’完成情況’,’儲(chǔ)存地址’])#df = df.head(5)dfsel = (df[’標(biāo)題’] !=’隨文’) & (df[’完成情況’] != 1)save_folder = r'I:codepythondata01 爬取微信公眾號(hào)歷史文章01 二律背反的一燈如豆' + ''# 設(shè)置保存格式為 mhtml,減少要操作文件保存下拉框的情況options = webdriver.ChromeOptions()options.add_argument(’--save-page-as-mhtml’)# 啟動(dòng)瀏覽器driver = webdriver.Chrome(options=options)wait = WebDriverWait(driver,10)df.loc[dfsel,'完成情況'],df.loc[dfsel,'儲(chǔ)存地址'] = zip(*df[dfsel].apply(download_mhtml_with_not_check, axis=1,args=(driver,wait)))

2、編寫相關(guān)下載頁面函數(shù)

# 在timeout秒內(nèi),返回中心值,間隔時(shí)長time_setp# 封裝一個(gè)pyautogui限時(shí)查找函數(shù)#def finde_gui_element(png,timeout = 5,time_setp=0.2): i = 1 if timeout <=0 : timeout = 5 if time_setp <=0 : time_setp = 0.2 while True: if i > timeout/time_setp: return None center = pyautogui.locateCenterOnScreen(png,grayscale=False,confidence=0.9) if center == None: time.sleep(0.2) else: return center i = i + 1

主要自動(dòng)化操作代碼:

def download_mhtml_with_not_check(x,driver,wait): name = ’’ try: url = str(x[’地址’]) driver.get(url) # 獲取瀏覽器標(biāo)題,用于檢測(cè)是否是置頂頁 wait.until(EC.presence_of_element_located((By.XPATH,’//h2[@id='activity-name']’))) title = driver.find_element_by_xpath(’//h2[@id='activity-name']’).text print(’no:’,x.name,’url:’,url,’title:’,title) wait.until(EC.presence_of_element_located((By.XPATH,’//div[@id='page-content']’))) #進(jìn)入下載 pyautogui.hotkey(’ctrl’, ’s’) # 等待一下對(duì)話框彈出 time.sleep(1) bt = finde_gui_element(r’datapngsave.png’) #查找保存按鍵 if bt == None: return (0,’’) else: # 根據(jù)標(biāo)題組合成具體路徑 name = save_folder + ’ ’ + title + ’.mhtml’ #print(name) pyperclip.copy(name) pyautogui.hotkey(’ctrl’, ’v’) time.sleep(0.1) pyautogui.hotkey(’Enter’) # 檢查是否彈出另存為 bt = finde_gui_element(r’datapngconfirmsaveas.png’,timeout=0.5) if bt != None: # 說明出現(xiàn)重復(fù)明明,點(diǎn)擊覆蓋 pyautogui.hotkey(’Tab’) pyautogui.hotkey(’Enter’) return (1,name) bt = finde_gui_element(r’datapngcancle.png’,timeout=0.5) if bt != None: #還愛,說明出現(xiàn)了一些異常 pyautogui.hotkey(’esc’) pyautogui.hotkey(’esc’) pyautogui.leftClick(bt) return (-1,name) # 加多一個(gè)esc防止出現(xiàn)窗口還在 pyautogui.hotkey(’esc’) except Exception as e: print(str(e)) return (-2,name) return (1,name)

最后寫入excel:

Python selenium如何打包靜態(tài)網(wǎng)頁并下載

通過vba代碼,將單元格地址添加上超鏈接:

Option ExplicitSub add_hype() Dim ws As Worksheet, arr As Variant, i As Long Set ws = ThisWorkbook.Worksheets(1) arr = ws.UsedRange.Value ws.Cells.Hyperlinks.Delete For i = 2 To UBound(arr) If CStr(arr(i, 2)) = '隨文' Then Else If CStr(arr(i, 5)) = '1' Then ws.Hyperlinks.Add Anchor:=ws.Cells(i, 6), Address:=CStr(arr(i, 6)) End If End If Next i End Sub

完成。

不足之處:

1、通過autogui操作,難免會(huì)遇到彈窗的情況,需要增加活動(dòng)窗體置頂,但是一直沒有找到有效的方法。

以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。

標(biāo)簽: Python 編程
相關(guān)文章:
主站蜘蛛池模板: 有声小说,听书,听小说资源库-听世界网 | 仓储笼_仓储货架_南京货架_仓储货架厂家_南京货架价格低-南京一品仓储设备制造公司 | 电动打包机_气动打包机_钢带捆扎机_废纸打包机_手动捆扎机 | 南京和瑞包装有限公司| 热风机_工业热风机生产厂家上海冠顶公司提供专业热风机图片价格实惠 | 精密模具-双色注塑模具加工-深圳铭洋宇通| 制氮设备_PSA制氮机_激光切割制氮机_氮气机生产厂家-苏州西斯气体设备有限公司 | 工业废水处理|污水处理厂|废水治理设备工程技术公司-苏州瑞美迪 今日娱乐圈——影视剧集_八卦娱乐_明星八卦_最新娱乐八卦新闻 | 深圳南财多媒体有限公司介绍| 天津蒸汽/热水锅炉-电锅炉安装维修直销厂家-天津鑫淼暖通设备有限公司 | 坏男孩影院-提供最新电影_动漫_综艺_电视剧_迅雷免费电影最新观看 | 自动气象站_农业气象站_超声波气象站_防爆气象站-山东万象环境科技有限公司 | 盘扣式脚手架-附着式升降脚手架-移动脚手架,专ye承包服务商 - 苏州安踏脚手架工程有限公司 | 塑料托盘厂家直销-吹塑托盘生产厂家-力库塑业【官网】 | 缓蚀除垢剂_循环水阻垢剂_反渗透锅炉阻垢剂_有机硫化物-郑州威大水处理材料有限公司 | 混合气体腐蚀试验箱_盐雾/硫化氢/气体腐蚀试验箱厂家-北京中科博达 | 2025第九届世界无人机大会| 动库网动库商城-体育用品专卖店:羽毛球,乒乓球拍,网球,户外装备,运动鞋,运动包,运动服饰专卖店-正品运动品网上商城动库商城网 - 动库商城 | 杰福伦_磁致伸缩位移传感器_线性位移传感器-意大利GEFRAN杰福伦-河南赉威液压科技有限公司 | 逗网红-抖音网红-快手网红-各大平台网红物品导航 | 打孔器,打孔钳厂家【温州新星德牌五金工具】 | 医学模型生产厂家-显微手术模拟训练器-仿真手术模拟训练系统-北京医教科技 | 上海阳光泵业制造有限公司 -【官方网站】 | 应急灯_消防应急灯_应急照明灯_应急灯厂家-大成智慧官网 | 不锈钢列管式冷凝器,换热器厂家-无锡飞尔诺环境工程有限公司 | 高效节能电机_伺服主轴电机_铜转子电机_交流感应伺服电机_图片_型号_江苏智马科技有限公司 | 智慧消防-消防物联网系统云平台| 小学教案模板_中学教师优秀教案_高中教学设计模板_教育巴巴 | 金属软管_不锈钢金属软管_巩义市润达管道设备制造有限公司 | 高考志愿规划师_高考规划师_高考培训师_高报师_升学规划师_高考志愿规划师培训认证机构「向阳生涯」 | jrs高清nba(无插件)直播-jrs直播低调看直播-jrs直播nba-jrs直播 上海地磅秤|电子地上衡|防爆地磅_上海地磅秤厂家–越衡称重 | 杭州高温泵_热水泵_高温油泵|昆山奥兰克泵业制造有限公司 | 食药成分检测_调料配方还原_洗涤剂化学成分分析_饲料_百检信息科技有限公司 | 点胶机_点胶阀_自动点胶机_智能点胶机_喷胶机_点胶机厂家【欧力克斯】 | 洗石机-移动滚筒式,振动,螺旋,洗矿机-青州冠诚重工机械有限公司 | 重庆网站建设,重庆网站设计,重庆网站制作,重庆seo,重庆做网站,重庆seo,重庆公众号运营,重庆小程序开发 | 一体化污水处理设备_生活污水处理设备_全自动加药装置厂家-明基环保 | 综合管廊模具_生态,阶梯护坡模具_检查井模具制造-致宏模具厂家 | 特种阀门-调节阀门-高温熔盐阀-镍合金截止阀-钛阀门-高温阀门-高性能蝶阀-蒙乃尔合金阀门-福建捷斯特阀门制造有限公司 | 合肥注册公司|合肥代办营业执照、2024注册公司流程 | 综合管廊模具_生态,阶梯护坡模具_检查井模具制造-致宏模具厂家 |