【发布时间】:2021-12-25 14:41:12
【问题描述】:
enter code here
test_link = 'https://www.amd.com/en/products/cpu/amd-ryzen-9-3900xt'
r = requests.get(test_link, headers=headers)
soup = BeautifulSoup(r.content,'lxml')
whole_data = soup.find('div', class_='fieldset-wrapper')
specifications = []
specifications_value=[]
for variable1 in whole_data.find_all('div', class_='field__label'):
#print(variable1.text)
variable1 = variable1.text
specifications = list(variable1.split('\n'))
#print(specifications)
for variable2 in whole_data.find_all('div', class_='field__item'):
#print(variable2.text)
variable2 = variable2.text
specifications_value = list(variable2.split('\n'))
#print(specifications_value)
问题:我正在获取数据,但在单独的变量和 for 循环中,如何使用键值对映射这两个变量?这样我就可以检查以下条件: 如果该值是平台,则仅说明它的值(盒处理器)
我想以这样一种方式捕获数据,如果“键”是平台,那么只捕获它的值(盒装处理器)。其他 14 个标签也是如此。
【问题讨论】:
-
请不要在屏幕截图中包含文字。 Stack Overflow 有许多 formatting features,您可以使用它们在问题中包含代码、输出等文本。考虑用包含实际文本的代码块替换您的文本屏幕截图。
-
这能回答你的问题吗? How to iterate through two lists in parallel? 您想同时迭代
whole_data.find_all('div', class_='field__label')和whole_data.find_all('div', class_='field__item')。 -
@PranavHosangadi 谢谢!是的,我想遍历这 2 个。但我还想检查如果第一个列表是 == 平台,那么只从第二个列表中选择值。否则将其留空。例如:如果产品系列不存在,那么我必须将其留空。两者都在不同的列表中,我将如何映射这些?
-
@PranavHosangadi 你能帮忙吗
-
当您并行迭代这两个而不是像我共享的链接中所示的单独循环时,您将获得
specifications的一个值和specifications_value的相应值。
标签: python dictionary beautifulsoup key-value