我是使用BeautifulSoup的全新的,所以如果我的问题是愚蠢的,请原谅我。然而,我一直在谷歌搜索和尝试建议,在每一个stackoverflow线程我可以从早上6点,但无济于事。BeautifulSoup返回不同的HTML比查看来源
我的问题是我有一个基因名称的.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的页面,inspect元素和视图源将有所不同,但urlopen应始终返回与视图源相同的HTML。
我需要在“说明”之后提取字符串。访问浏览器中的链接,我可以查看源代码并查看我需要使用BeautifulSoup查找的代码;然而,除非urlopen正常工作并返回正确的HTML,否则我无能为力。我的RA工作取决于今晚完成这项工作。
有什么建议吗?
奇妙地工作。由于我是网络抓取/抓取的新手,任何信息都可以帮到你。你可以分享为什么“requests.get(url)”和html = BeautifulSoup(r.text)返回当我右键单击并查看源代码时看到的HTML,但html = openurl(ensemblURL)没有?非常感谢你。 – 2014-11-05 20:26:30
嗯,我不知道,也不打算进行调查,但现在每个人都在使用请求模块而不是urllib,因为它使用起来要容易得多。我确信你可以使它与urllib协同工作,但为什么要经历这个麻烦? – ofrommel 2014-11-05 20:33:47
也请这么友善地标记我的答案是正确的。 – ofrommel 2014-11-05 21:01:02