【问题标题】:How to open and save a large number of webpages using Chrome and pywinauto?如何使用Chrome和pywinauto打开和保存大量网页?
【发布时间】:2021-05-06 06:57:27
【问题描述】:

我有数以万计的网址,我想将它们的网页保存到我的计算机上。

我正在尝试使用 pywinauto 自动使用的 Chrome 打开和保存这些网页。 我可以使用以下代码打开网页:

from pywinauto.application import Application
import pyautogui

chrome_dir = 'C:\Program Files\Google\Chrome\Application\chrome.exe'

start_args = ' --force-renderer-accessibility --start-maximized https://pythonexamples.org/'
             app = Application(backend="uia").start(chrome_dir+start_args)

我想进一步向网页发送快捷方式以将其保存为 mhtml。 Ctrl+Shift+Y 是将网页保存为 mhmtl 的 Chrome 扩展程序(称为 SingleFile)的快捷方式。然后我想通过键入“Ctrl + F4”关闭选项卡,然后再打开另一个选项卡并重复相同的过程。

密钥未成功发送到 Chrome。

# Sent shortcut (Ctrl+Shift+Y)
pyautogui.press(['ctrl', 'shift', 'y'])

# Close the current tab:
pyautogui.press(['ctrl', 'f4'])

我被困在这一步。这样做的正确方法是什么?谢谢! 尝试了 Selenium 等其他替代方案,但被远程服务器阻止。

【问题讨论】:

标签: python python-3.x pyautogui pywinauto


【解决方案1】:

您为什么使用 Chrome 来获取网站数据?通常,直接使用外部应用程序(即模拟用户)是一种可怕且低效的方式来做任何事情。如果您的目标是快速获取和存储来自网站的数据,您应该直接与网站对话,使用类似requests 的模块,它可以让您快速轻松地发送 HTTP 请求并获取所有网站数据.要获取 MHTML 数据,您可以尝试类似this

【讨论】:

  • 网站有防刮机制。普通的抓取工具不起作用。我必须使用资源管理器让远程服务器相信它是屏幕后面的人。
  • 啊,我明白了。看看this guide to circumvent anti-scraping measures。这似乎会有所帮助。
  • 谢谢!我去看看。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-04-02
  • 1970-01-01
  • 1970-01-01
  • 2014-06-26
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多