gpt4 book ai didi

html - R抓取整个html,而不仅仅是页面 View

转载 作者:可可西里 更新时间:2023-11-01 13:33:09 29 4
gpt4 key购买 nike

用一个句子来表达这个问题有点困难,但我正在尝试从以下页面中抓取一些 html

http://www.ncbi.nlm.nih.gov/snp/?term=(human[Organism])+AND+GLRA3[Gene Name]

我可以使用 R 抓取我需要的内容,但是因为浏览器只显示前 20 个条目,所以我只能使用相应的 html。这会导致问题,因为我想抓取所有 条目,而不仅仅是浏览器页面提供的条目。无论如何,这是我的 R 代码

library(XML)
library(httr)

#Go to Nectar Mutation and get SNP refs
dbsnp.searchterm="(human[Organism])+AND+GLRA1[Gene Name]"
dbsnp.url=paste0("http://www.ncbi.nlm.nih.gov/snp/?term=",dbsnp.searchterm)
dbsnp.get=GET(dbsnp.url)
dbsnp.content=content(dbsnp.get, as="text")
links<-xpathSApply(htmlParse(dbsnp.content), "//a[contains(@href, 'snp_ref')]",xmlGetAttr,"href")

和结果

> links
[1] "/projects/SNP/snp_ref.cgi?rs=116474260"
[2] "/projects/SNP/snp_ref.cgi?rs=121918408"
[3] "/projects/SNP/snp_ref.cgi?rs=121918409"
[4] "/projects/SNP/snp_ref.cgi?rs=121918410"
[5] "/projects/SNP/snp_ref.cgi?rs=121918411"
[6] "/projects/SNP/snp_ref.cgi?rs=121918412"
[7] "/projects/SNP/snp_ref.cgi?rs=121918413"
[8] "/projects/SNP/snp_ref.cgi?rs=121918414"
[9] "/projects/SNP/snp_ref.cgi?rs=121918415"
[10] "/projects/SNP/snp_ref.cgi?rs=121918416"
[11] "/projects/SNP/snp_ref.cgi?rs=121918417"
[12] "/projects/SNP/snp_ref.cgi?rs=121918418"
[13] "/projects/SNP/snp_ref.cgi?rs=267600494"
[14] "/projects/SNP/snp_ref.cgi?rs=267606848"
[15] "/projects/SNP/snp_ref.cgi?rs=281864912"
[16] "/projects/SNP/snp_ref.cgi?rs=281864913"
[17] "/projects/SNP/snp_ref.cgi?rs=281864914"
[18] "/projects/SNP/snp_ref.cgi?rs=281864915"
[19] "/projects/SNP/snp_ref.cgi?rs=281864916"
[20] "/projects/SNP/snp_ref.cgi?rs=281864917"

您会注意到我需要 4058 个条目。

最佳答案

我花了整个下午的时间,但我只得到了一半的解决方案(第一次使用 XML)。不管怎样,我发现您可以使用以下链接获取 XML 格式的结果;

http://eutils.ncbi.nlm.nih.gov/entrez/eutils/esearch.fcgi?db=SNP&term=(human[Organism])+AND+GLRA3[Gene+Name]

db 代表您要搜索的数据库,term 是不言自明的。

然后您将在结果之上看到;

<Count>4736</Count>
<RetMax>20</RetMax>

在此 ID 列表下开始并显示 20 个 ID,这些 ID 等同于 rs 中的值;

/projects/SNP/snp_ref.cgi?rs=116474260

您可以使用 GET 函数在 R 中获取此信息。现在,如果您能找到一种方法让 R 读取 Count 行中的数字(这是可能的结果数量),然后再次使用 GET 函数,但现在将 &RetMax=X 添加到链接的末尾,其中 X 是Count 行中的数字。

例如;

http://eutils.ncbi.nlm.nih.gov/entrez/eutils/esearch.fcgi?db=SNP&term=(human[Organism])+AND+GLRA3[Gene+Name]&RetMax=4736

现在所有 ID 都导入到 R 中(同样,我缺乏从数据中很好地提取它们的技能,所以这可能需要其他人来解决)。

希望对您有所帮助!

关于html - R抓取整个html,而不仅仅是页面 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24760474/

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