python autoit获取网页ajax数据_Python selenium+AutoIt 实现自动获取网页内Flash窗口中的信息,以图片的方式保存...

本文介绍了如何使用Python结合AutoIt工具来自动化操作网页内嵌Flash窗口,弥补selenium webdriver的不足。通过示例展示了利用AutoIt进行特定操作,如全屏和页面滚动,并使用PIL的ImageGrab进行截图保存。完整代码展示了整个过程。
摘要由CSDN通过智能技术生成

python结合AutoIt工具后真是太赞了!能很大程度上实现自动化操作。

这次只是一个很简单的演示,但是所用的方式能产生很多可能,~ ~ !!!

完善了webdriver的功能!

使用场景:针对网页内嵌套的flash窗口,selenium中的webdriver无法操作造成断点时,使用AutoIt工具来解决。

7bde3c9c276f05a1af9d5a6798cd25e0.png

结果展示:

AutoIt的中文说明文档:https://www.jb51.net/shouce/autoit/

webdriver的使用可以看:https://www.cnblogs.com/yufeihlf/p/5764807.html

(ps:博主整理的很完整。)

出现的问题:

1:ImageGrab.grab()截图不完整的原因:

仅调整图片尺寸无法解决问题,会有黑边

仅在系统分辨率大于100%时出现

解决方法:调整系统分辨率为100%

参考资料:https://blog.csdn.net/wybooooooooo/article/details/80903650

2:AutoIt 工具的安装

官网地址:

https://www.autoitscript.com/site/autoit/downloads/

安装时杀毒软件会有提示,忽略即可。

思路:

一、用webdriver实现web自动化。

二、webdriver无法进行的操作造成的断点,用AutoIt来解决。

将Autol的操作打包成XXX.exe文件,在需要时通过Python中的os.startfile方法调用

245ae2dc28ce57b18f92bdec38b72003.png

location.exe 的作用是点击 flash窗口中的全屏按钮。

效果:c310491c2aaa0f98f7331cb7bbd245d1.png

next_page.exe的作用是移动页面

效果:

三、使用PIL中的ImageGrab进行截图、保存。

四、使用循环即可对所有的页面进行截图保存。

完整代码:

from selenium import webdriver

import os

import time

from PIL import ImageGrab

driver=webdriver.Chrome()

url='http://abook.hep.com.cn/jsp/resource/showResourceDocuments.' \

'jsp?resourceUrl=NTAwMDAxMzY2NUAzO2h0dHA6Ly9hYm9vay5oZXAuY29' \

'tLmNuOjgwL0lDb3Vyc2VGaWxlcy81MDAwMDAwMDgxL3N3ZnJlc291cnNlcy' \

'8yMDE0LzgvMjAvMTQvMjEvMTQwODUxNTcwMjU1MS5zd2Y='

driver.get(url)

#等待网页加载完成后,按任意键继续。

key=input('任意键继续( q 退出): ')

if (key=='q'):

exit()

handle=driver.current_window_handle

driver.maximize_window() #最大化窗口,可以简化鼠标定位

driver.implicitly_wait(2)

#exit()

#自定义的鼠标操作

app_path1='E:\AutoIt script\网页中flash窗口\location.exe'#点击flash窗口工具栏上的全屏按钮。

app_path2='E:\AutoIt script\网页中flash窗口\\next_page.exe'#鼠标拖曳,一次向上翻动一个屏幕的距离

os.startfile(app_path1)

time.sleep(3)

n=0

while(n!=16):

filename = 'image\\10_' + str(n + 1) + '.png'

#driver.get_screenshot_as_file(filename)

image=ImageGrab.grab()

image.save(filename)

time.sleep(2)

os.startfile(app_path2)

n=n+1

#input('任意键继续( q 退出): ')

driver.close()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值