python - 使用 chromedriver 下载生成的 PDF
问题描述
你好我是新的网络抓取。我正在尝试使用谷歌网络潜水员单击链接以下载蝙蝠侠电影脚本,但我遇到了一些错误。我在某处读到,因为文件是生成的而不是存储在数据库中,因此可能无法通过网络抓取工具下载它。谁能帮我?
我在 google colab 上有以下 python 脚本:
!pip install selenium
!apt-get update
!apt install chromium-chromedriver
!cp /usr/lib/chromium-browser/chromedriver /usr/bin
import sys
sys.path.insert(0,'/usr/lib/chromium-browser/chromedriver')
from selenium import webdriver
download_url = 'https://www.studiobinder.com/blog/batman-begins-script-screenplay-pdf-download'
chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument('--headless')
chrome_options.add_argument('--no-sandbox')
chrome_options.add_argument('--disable-dev-shm-usage')
wd = webdriver.Chrome('chromedriver',chrome_options=chrome_options)
wd.get(download_url)
button = wd.find_element_by_tag_name("Download PDF")
button.click()
wd.close()
解决方案
Download PDF
该网页上没有与标签名称匹配的元素。
这就是为什么您的wd.find_element_by_tag_name("Download PDF")
代码行显然会引发异常的原因。如果不是,button
将是一个NoneType
没有click()
方法的对象。
推荐阅读
- android - 聊天应用用户如何再次在线获取离线时发送给他们的消息
- python - 正则表达式仅返回匹配的第一部分
- javascript - 如何使 HTML 字符串中的所有图像延迟加载?
- python - 如何使用 Pandas to_string 编写不同精度的 csv 文件?
- amazon-web-services - 在提交 AWS 批处理作业时获取最新的作业修订,而无需指定确切的修订号
- ruby-on-rails - Rails - 使用增量!有用户输入
- c# - 如何更改 .Views.dll 中预编译视图的默认命名并使用该名称通过控制器操作调用?
- excel - 有没有办法限制运行多个宏的excel中锁定的单元格?
- angular - 无法获取 pdf 文件类型以及其他图像类型,因为使用 angular6 创建 zip 文件
- reactjs - 如何从父组件调用子组件 setState