首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何遍历基因/URL列表并生成基因信息行?

如何遍历基因/URL列表并生成基因信息行?
EN

Stack Overflow用户
提问于 2020-08-17 00:08:02
回答 2查看 66关注 0票数 0

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

代码语言:javascript
复制
gene1  full_name1  biotype1

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

代码语言:javascript
复制
gene1  full_name1  biotype1
gene2  full_name2  biotype2
gene3  full_name3  biotype3
...

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

下面是我的代码:

代码语言:javascript
复制
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

有人能帮我吗?谢谢。

EN

回答 2

Stack Overflow用户

发布于 2020-08-17 00:17:35

你会想要使用一个for循环。

首先使用列表理解创建url列表。

代码语言:javascript
复制
gene_list = [gene1, gene2, gene3, ...]
url_list = ['https://www.xxxxxxxx?gene={}'.format(i) for i in gene_list]

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

代码语言:javascript
复制
genes = []
full_names = []
biotypes = []

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

代码语言:javascript
复制
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)

如果你想从那里得到花哨的东西,你可以把它放进熊猫的DataFrame中:

代码语言:javascript
复制
import pandas as pd
df = pd.DataFrame([gene_list, genes, full_names, biotypes])

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

票数 1
EN

Stack Overflow用户

发布于 2020-08-17 00:20:59

尝尝这个

代码语言:javascript
复制
gene_list = [gene1, gene2, gene3, ...]
i = 0
gene_info = []
while i < 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
    gene_info.append([gene, full, biotype])
    i = i + 1
print(gene_info)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63439090

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档