我是使用 BeautifulSoup 的新手,所以如果我的问题很愚蠢,请原谅我。然而,自早上 6 点以来,我一直在谷歌上搜索并尝试在每个 stackoverflow 线程中尝试建议,但无济于事。
我的问题是我有一个带有基因名称的 .csv 文件,其中一些是 ensEMBL 格式,这意味着我必须使用 ensembl 数据库来查找我需要的信息。其余的我可以使用 ncbi 数据库。
现在,我的代码就很好了。我知道这一点是因为发送到 ncbi 的每个查询都会返回我需要的信息,并且我可以使用 BeautifulSoup 提取所有信息并将其输出到 csv。然而,urlopen 或 BeautifulSoup 都没有按照我被引导理解的方式工作。
当我将以下 URL 放入地址栏中时,会加载正确的网页:http://uswest.ensembl.org/Gallus_gallus/Gene/Summary?db=core;g=ENSGALG00000016955;r=1:165302186-165480795;t=ENSGALT00000027404.
然后我可以查看源代码并查看 HTML。然而当我有:
html = urlopen(http://uswest.ensembl.org/Gallus_gallus/Gene/Summary?db=core;g=ENSGALG00000016955;r=1:165302186-165480795;t=ENSGALT00000027404, 'lxml')
它输出的 HTML 根本不是我在浏览器中加载相同 URL 并查看源代码时得到的结果。我知道对于使用 javascript 的页面,检查元素和查看源代码会有所不同,但 urlopen 应该始终返回与查看源代码相同的 HTML。
我需要提取“Description”之后的字符串。访问浏览器中的链接,我可以检查源代码并查看需要使用 BeautifulSoup 查找的标签;但是,除非 urlopen 正常工作并返回正确的 HTML,否则我无能为力。我的 RA 工作取决于今晚之前完成这件事。
有什么建议么?
页面的某些部分由脚本标记中引用的 Javascript 加载,例如“Summary”。然而,您要查找的文本已嵌入 HTML 中。使用以下代码找到“描述”标记后面的文本:
import requests
from bs4 import BeautifulSoup
url = "http://uswest.ensembl.org/Gallus_gallus/Gene/Summary?db=core;g=ENSGALG00000016955;r=1:165302186-165480795;t=ENSGALT00000027404"
r = requests.get(url, timeout=5)
html = BeautifulSoup(r.text)
description = html.find("div", {'class': "rhs"})
print description.text
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)