【发布时间】:2019-12-18 23:13:04
【问题描述】:
我是 Python 新手,我在工作中尝试完成的项目需要专家指导,因为我的同事都不是程序员。
我正在制作一个登录网站并提取 CSV 数据集的脚本。以下是我想自动化的步骤:
- 打开 chrome,访问网站
- 使用用户名/密码登录
- 通过下拉菜单导航到另一个内部站点
- 在搜索标签框中输入文本或删除搜索标签,例如“小时”,按“Enter”或“Tab”键选择(重复此操作可搜索 3-4 个搜索标签)
- 点击“运行数据”
- 等到数据加载完毕,然后点击“下载”以获取包含 40-50k 行数据的 CSV 文件
- 针对不同的数据拉取、不同的链接和不同的搜索标签重复此过程 3-4 次
这个过程通常需要 30-40 分钟,每周总共提取 4 或 5 次数据,因此就像看着油漆变干一样。
我尝试使用pyautogui 模块自动执行此操作,但它对我不起作用。它工作得太快,或者根本不起作用。我想我用错了。
这是我的代码:
import webbrowser
import pyautogui
#pyautogui.position()
#print(pyautogui.position())
#1-2
pyautogui.FAILSAFE = True
chrome_path = 'open -a /Applications/Google\ Chrome.app %s'
#2-12
url = 'http://Google.com/'
webbrowser.get(chrome_path).open(url)
pyautogui.moveTo(185, 87, duration=0.25)
pyautogui.click()
pyautogui.typewrite('www.linkedin.com')
pyautogui.press('enter')
#loginhere? Research
如果pyautogui 不适合这个任务,你能推荐一种替代方法吗?
【问题讨论】:
-
“太快了”是什么意思?这不是你想要的吗?
-
我的意思是 Python 正在以快速的方式处理代码,因此代码需要在某些代码之间暂停以允许鼠标导航、单击等。Python 正在快速处理代码(速度是不是问题)问题是 - 浏览器没有在点击/移动等之间加载整个网站。我在我的 Mac 上运行了 8 gig 的 ram - 现在 16 - 所以谁知道这是否会有所作为。通常,我知道数据将使用 SQL/ACCESS 或 Excel ODBC 查询,但这些不是一个选项。所以我尝试使用 python 抓取数据。
标签: python automation webbrowser-control pyautogui