首页 > 解决方案 > 如何遍历基因/ URL 列表并生成基因信息行?

问题描述

我是 Python 新手,不熟悉循环结构。如果我想遍历我感兴趣的基因的 url 列表并将特定列(例如基因名称、完整基因名称及其来自该网站的生物型)提取为一行

gene1  full_name1  biotype1

并为下一个基因添加新行,如下所示

gene1  full_name1  biotype1
gene2  full_name2  biotype2
gene3  full_name3  biotype3
...

我不知道该怎么做。也许我应该使用多个循环?

这是我的代码:

gene_list = [gene1, gene2, gene3, ...]
i = 0
while (i in len(gene_list):
    url = 'https://www.xxxxxxxx?gene=' + str(gene_list[i])
    driver.get(url)
    gene = driver.find_element_by_css_selector('em:nth-of-type(1)').text
    full = driver.find_element_by_css_selector('h2:nth-of-type(1)').text
    biotype = driver.find_element_by_css_selector('span.gc-category').text
    i = i + 1

谁能帮我这个?谢谢你。

标签: pythonloops

解决方案


您将需要使用 for 循环。

首先使用列表推导创建 url 列表。

gene_list = [gene1, gene2, gene3, ...]
url_list = ['https://www.xxxxxxxx?gene={}'.format(i) for i in gene_list]

接下来,初始化每个列的空列表。

genes = []
full_names = []
biotypes = []

最后,对于 url 列表中的每个 url,您将提取信息并将它们附加到各自的列表中。

for url in url_list:
    driver.get(url)
    genes.append(driver.find_element_by_css_selector('em:nth-of-type(1)').text)
    full_names.append(driver.find_element_by_css_selector('h2:nth-of-type(1)').text)
    biotypes.append(driver.find_element_by_css_selector('span.gc-category').text)

如果您想从那里获得幻想,可以将其放入 pandas DataFrame 中:

import pandas as pd
df = pd.DataFrame([gene_list, genes, full_names, biotypes])

一旦它在 pandas DataFrame 中,您将能够更轻松、更漂亮地使用和可视化数据。


推荐阅读