gpt4 book ai didi

python-2.7 - BeautifulSoup 返回与查看源代码不同的 html

转载 作者:行者123 更新时间:2023-12-04 18:06:01 25 4
gpt4 key购买 nike

我是 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')

当我在浏览器中加载相同的 URL 并查看源代码时,它输出的 HTML 根本不是我得到的。我知道对于带有 javascript 的页面,检查元素和查看源代码会有所不同,但是 urlopen 应该始终返回与查看源代码相同的 HTML。

我需要提取“描述”之后的字符串。在我的浏览器中访问链接,我可以检查源代码并查看我需要使用 BeautifulSoup 查找的标签;但是,除非 urlopen 正常工作并返回正确的 HTML,否则我无能为力。我的 RA 工作取决于在今晚之前完成这项工作。

有什么建议吗?

最佳答案

部分页面由脚本标记中引用的 Javascript 加载,例如“摘要”。但是,您要查找的文本已嵌入到 HTML 中。在 Description 标签之后定位文本使用此代码:

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

关于python-2.7 - BeautifulSoup 返回与查看源代码不同的 html,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26763461/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com