我对这个很陌生,花了几个小时try 了我在这里读到的各种方法.如果我犯了愚蠢的错误,我会道歉

我想创建一个乐高积木的数据库.从brickset中提取图像和信息.通用域名格式

我用的是:

anchors = driver.find_elements_by_xpath('//*[@id="ui-tabs-2"]/ul/li[1]/a')
anchors = [a.get_attribute('href') for a in anchors]

打印(锚定)返回:

anchors = driver.find_elements_by_xpath('//*[@id="ui-tabs-2"]/ul/li[1]/a')

我的目标是:

div id="ui-tabs-2" class="ui-tabs-panel ui-widget-content ui-corner-bottom" aria-live="polite" aria-labelledby="ui-id-4" role="tabpanel" aria-expanded="true" aria-hidden="false" style="display: block;">
<ul class="moreimages">
<li>
<a href="https://images.brickset.com/sets/AdditionalImages/21054-1/21054_alt10.jpg" class="highslide plain " onclick="return hs.expand(this)">
<img src="https://images.brickset.com/sets/AdditionalImages/21054-1/tn_21054_alt10_jpg.jpg" title="" onerror="this.src='/assets/images/spacer2.png'" loading="lazy">
</a><div class="highslide-caption">

我想弄清楚这件事,真是疯了.

Update

anchors = driver.find_elements(By.XPATH, '//*[@id="ui-tabs-2"]/ul/li/a')
links = [anchors.get_attribute('href') for a in anchors]
print('Found ' + str(len(anchors)) + ' links to images')

我也try 过:

#anchors = driver.find_elements_by_css_selector("a[href*='21330']")

这只返回了一个href,尽管应该有十几个.

谢谢大家的帮助!

推荐答案

您不应该对多个变量使用相同的名称.

根据第一行代码:

anchors = driver.find_elements_by_xpath('//*[@id="ui-tabs-2"]/ul/li[1]/a')

anchors是WebElements的列表.理想情况下,要创建另一个包含101个属性的列表,您应该使用另一个名称,例如102

实际上,您的代码块将是:

anchors = driver.find_elements_by_xpath('//*[@id="ui-tabs-2"]/ul/li[1]/a')
hrefs = [a.get_attribute('href') for a in anchors]
print(hrefs)

在一行中使用list comprehension:

print(a.get_attribute('href') for a in driver.find_elements_by_xpath('//*[@id="ui-tabs-2"]/ul/li[1]/a'))

Python-3.x相关问答推荐

如何有效地计算Kernel/Matrix

Pandas 数据帧断言等同于NaN

如何验证具有内部json字符串的json字符串?

使用递归将int转换为字符串

我不能使用拆分来分隔数据

为什么我无法在django中按月筛选事件?

重复数组直到一定长度 groupby pandas

将自动文本转换为 DataFrame

它们是否同样存储在python3的内存中?

为什么 Multiprocessing 的 Lock 不会阻止其他进程使用对象?

Python BeautifulSoup:在 Select 语句中排除其他标签

python用户输入5个偶数并打印最大的

命名元组内命名元组的 Python 语法

逗号分隔列表的 argparse 操作或类型

Python 解包运算符 (*)

在python中打印下标

TypeError: write() 参数必须是 str,而不是字节(Python 3 vs Python 2)

如何为 anaconda python3 安装 gi 模块?

带有数千个逗号刻度标签的 MatPlotLib 美元符号

TypeError:无法实例化类型元组;使用 tuple() 代替