bil*_*999 4 random graphics survey photo qualtrics
我正在Qualtrics创建一个包含许多照片的调查,比如1000.我想让每个调查参与者回答,比如6,每张照片的问题.每位参与者将看到5张随机分配的照片.
在研究之前,我假设有一种方法可以上传1000张照片,在Qualtrics中创建一个块(带有6个问题),然后简单地随机化出现的照片并将其重复5次.
但似乎这不可能或不明显.我打电话给Qualtrics,他们说我会手动创建1000个块(除了标题和照片之外,每个块都是完全相同的).然后我需要进入Survey Flow并在那里使用Randomizer并手动添加所有1000个块并让它随机呈现5个元素.
我真的希望有更好的方法.如果我必须这样做,这将花费大量时间.
如果没有,有什么方法可以自动化任何东西吗?
事实证明,有一个比1000块修复更快的方法.
有很多东西可以实现它,但它是可能的.
首先,需要通过图形库将照片放入Qualtrics.最好的方法是将照片拖放到所需位置.幸运的是,一个人不必一个一个地做这件事.确保它们符合您的要求.
其次,创建一个带有"问题"的块,您可以在其中显示随机照片.该块也应该包含所有6个问题.
第三,在与照片对应的URL的电子表格(例如,Excel中)中创建列.这应该是有序的.底部提到了一种方法.
第四,转到此块的循环和合并选项.将URL列复制并粘贴到Field 1中.幸运的是,此选项存在,并且不必逐个执行此操作.旁注是,如果将行中左侧的灰色框中的数字更改,则会更改结果中显示的数字.但是,没有明显的方法可以一次一个接一个地改变这些.
那么你应该全力以赴.
最后,稍微介绍一下如何获取照片的网址.再次确保库中的照片符合您的要求.然后,您可以使用Web抓取来刮取图像名称,然后将其放入正确的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)
Run Code Online (Sandbox Code Playgroud)
*在出现的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')
Run Code Online (Sandbox Code Playgroud)
人们可以通过例如"Qualtrics Path"找到合适的第一部分.转到Qualtrics Survey Editor,使用Rich HTML Editing(或类似的东西)插入照片,插入照片,单击View Source,然后查看要使用的模式文件路径.它可以从https://qualtrics.com/开始......
然后将结果复制到电子表格程序中,您就可以复制并粘贴了.