python - 在 Python 中使用 selenium 抓取 Nodescreenshots
问题描述
我和我的朋友玩纸牌游戏,想编写一个自定义网站,这样即使我们不能见面,我们也可以玩。游戏的卡片都可以通过游戏网站访问。它们存储在特定位置,如下所示:
游戏/卡片数据库/过滤器/升级详细信息/ id。
该程序应该遍历所有 id 并在 chrome 检查器中获取相当于“Nodescreenshot”的内容
我的尝试如下:
import time
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from PIL import Image
from io import BytesIO
options = Options()
options.headless = True
options.add_argument("--window-size=1920,1080")
driver = webdriver.Chrome(options=options)
for i in range(2000):
driver.get(f"https://squadbuilder.fantasyflightgames.com/card-database/filters/upgrade-details/{i}")
time.sleep(5)
card_div = driver.find_element_by_class("sc-fzpans sc-fzplWN sc-fzoLag sc-pjSSY joSaYB")
location = card_div.location
size = card_div.size
png = driver.get_screenshot_as_png() # saves screenshot of entire page
im = Image.open(BytesIO(png)) # uses PIL library to open image in memory
left = location['x']
top = location['y']
right = location['x'] + size['width']
bottom = location['y'] + size['height']
im = im.crop((left, top, right, bottom)) # defines crop points
im.save(f'Card{i}.png') # saves new cropped image
driver.close()
但是代码总是遇到错误,找不到div
任何帮助表示赞赏,
提前致谢 :)
解决方案
推荐阅读
- excel - 错误 430 类不支持自动化或不支持预期的接口?
- javascript - 内容超过div高度后扩展div的宽度
- visual-foxpro - 基于 Visual FoxPro 构建的继承软件,如何访问源文件并根据需要编辑程序?
- c# - 如何判断一个任务是否由另一个任务启动
- angular - 如何通过监视 angularfire2 observable 进行单元测试?
- typo3 - TYPO3 构造带有几个占位符的 URL
- php - curl请求完成后是否可以注册一些回调函数来释放资源?
- angular - Angular:在父组件上监听滚动事件?
- java - Android 通知:向大多数用户显示通知的最佳编码实践?
- axapta - 如何确定行是否已更改?