Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x 列表索引超出了从搜索引擎抓取URL的范围_Python 3.x_Selenium Chromedriver - Fatal编程技术网

Python 3.x 列表索引超出了从搜索引擎抓取URL的范围

Python 3.x 列表索引超出了从搜索引擎抓取URL的范围,python-3.x,selenium-chromedriver,Python 3.x,Selenium Chromedriver,我使用selenium从搜索引擎中提取填充的链接。正如您在下面看到的,我将每个列表值附加到“cvDict”中的唯一键 问题是:有时这些搜索没有填充20个结果(即搜索查询的数据更为罕见,无法提供超过20个的查询)。我相信你知道我想解释什么。我只是想确保我能覆盖我所有的基地 当搜索查询结果少于20个并导致错误时,我可以编写什么类型的语句/函数来防止错误发生 我是否需要以1的增量编写20个独立的if/elif语句(或类似的语句),范围从1到20?确保结果满足其中一项要求 cv = []

我使用selenium从搜索引擎中提取填充的链接。正如您在下面看到的,我将每个列表值附加到“cvDict”中的唯一键

问题是:有时这些搜索没有填充20个结果(即搜索查询的数据更为罕见,无法提供超过20个的查询)。我相信你知道我想解释什么。我只是想确保我能覆盖我所有的基地

当搜索查询结果少于20个并导致错误时,我可以编写什么类型的语句/函数来防止错误发生

我是否需要以1的增量编写20个独立的if/elif语句(或类似的语句),范围从1到20?确保结果满足其中一项要求

cv = []
        bbb = self.driver.find_elements_by_class_name('user-name')
        # while True:
        for plink in bbb:
cv.append(plink.find_element_by_css_selector('a').get_attribute('href'))




    self.cvDict = {'one': cv[1],
                   'two': cv[2],
                   'three': cv[3], 'four': cv[4], 'five': cv[5],
                   'six': cv[6], 'seven': cv[7],
                   'eight': cv[8], 'nine': cv[9], 'ten': cv[10],
                   'eleven': cv[11], 'twelve': cv[12], 'thirteen': cv[13], 'fourteen': cv[14],
                   'fifteen': cv[15], 'sixteen': cv[16], 'seventeen': cv[17], 'eighteen': cv[18],
                   'nineteen': cv[19],
                       }

如果你想知道为什么空格很奇怪,那么当我得到9个搜索结果时,我可以只注释一到两个键值对,并且在dict中设置了10个键值对(例如),这会导致错误。

据我理解你的问题,你有一个长度未知(小于20)的列表
cv
你想用自定义键把它放到字典里

一种简单的方法是在列表中定义键

keys = ["one", "two", "three"]
然后将它与
cv
压缩在一起,并用它制作一本字典

cvDict = dict(zip(keys, cv))
cv的长度不必与
键一样长

keys = ["one", "two", "three"]
cv = ["something", "something else"]
cvDict = dict(zip(keys, cv))
将产生

{'one': 'something', 'two': 'something else'}

与键相同的是,如果cv较长,则会缩短到较短列表的长度

“zip”可能是此处的关键字。我会马上试用,并让你知道,但如果这不起作用,我会感到震惊。我想试试看!我会让你知道的。编辑:谢谢!哈,够了。搞定了。这个问题很简单,但事实上,我能够清晰地表达我的编码问题,让像你这样的人给出直接完整的解决方案,这是一种很棒的感觉。我认为这是学习过程中最难的部分。谢谢你,德特!