4

我正在Qualtrics中创建一个包含许多照片的调查,比如 1000 张照片。我想让每个调查参与者回答每张照片的问题,比如 6 个问题。每个参与者将看到 5 张随机分配的照片。

在调查之前,我假设有一种方法可以上传 1000 张照片,在 Qualtrics 中创建一个块(包含 6 个问题),然后简单地将出现的照片随机化并重复 5 次。

但这似乎是不可能或不明显的。我打电话给 Qualtrics,他们说我需要手动创建 1000 个块(除了标题和照片之外,每个块都完全相同)。然后我需要进入调查流程并在那里使用随机发生器并手动添加所有 1000 个块并让它随机呈现 5 个元素。

我真的希望有更好的方法。如果我必须这样做,这将花费大量时间。

如果没有,有没有办法自动化任何事情?

  1. 创建新块并自动填充照片。我知道 python 并且可能会编写一个脚本来生成块,但是照片名称已从其原始名称更改为 Qualtrics 生成的一些复杂代码。
  2. 一次将所有照片加载到 Qualtrics 中(目前需要一张照片一次加载一张)。
4

1 回答 1

9

事实证明,有一种比 1000 块修复更快的方法可以做到这一点。

有很多东西要完成它,但这是可能的。

首先,需要通过图形库将照片放入 Qualtrics。最好的方法是简单地将照片拖放到所需的位置。幸运的是,不必一个接一个地执行此操作。确保它们按您想要的顺序排列。

其次,创建一个带有“问题”的块,您希望随机照片出现在其中。这个块也应该有所有 6 个问题。

第三,在与照片对应的 URL 的电子表格(例如 Excel 中)中创建一列。这应该是有序的。底部提到了一种方法。

第四,转到此块的循环和合并选项。将 URL 列复制并粘贴到字段 1。幸运的是,存在此选项,并且不必逐个执行此操作。旁注是,如果更改行左侧灰色框中的数字,则会更改结果中显示的内容。但是没有明显的方法可以一次一个地改变这些。

那么你应该准备好了。

最后,稍微介绍一下如何获取照片的 URL。再次确保库中的照片按您想要的顺序排列。然后您可以使用网络抓取来抓取图像名称,然后可以将其放入正确的 URL。我使用 Python 的 Selenium 和 BeautifulSoup 来实现这一点。这是我使用mac所做的。代码至少给了你这个想法:

from bs4 import BeautifulSoup
import codecs
import os
from selenium import webdriver
import re

chromedriver = "File path to /chromedriver"
os.environ["webdriver.chrome.driver"] = chromedriver
driver = webdriver.Chrome(chromedriver)

*在出现的Chrome浏览器中,手动导航到照片库页面,然后:

abc = driver.find_elements_by_css_selector(".thumbframe")    
file = codecs.open('outputURLs.txt', 'w', encoding = 'utf-8')
urls = {}
for i in range(0,len(abc)):
    h = abc[i].get_attribute("innerHTML")
    soup = BeautifulSoup(h)
    t = soup.find_all("img", attrs={"p4":re.compile('.*')})
    urls[i] = t[0]['p1']
    file.write("<img src=*Qualtrics Path/Graphic.php?IM=" + urls[i] + "/> + '\n')

人们可以通过例如找到合适的第一部分来坚持“Qualtrics Path”。转到 Qualtrics 调查编辑器,使用富 HTML 编辑(或类似的东西)插入照片,插入照片,单击查看源,然后查看要使用的模式文件路径。它可能以https://qualtrics.com/之类的开头...

然后将结果复制到电子表格程序中,您应该可以复制和粘贴了。

于 2014-05-30T22:34:41.437 回答