首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何解析执行javascript的html网页

如何解析执行javascript的html网页
EN

Stack Overflow用户
提问于 2019-05-25 03:19:46
回答 2查看 51关注 0票数 0

我正试图为IUPACcondensed on 本网页编写一个报废的程序。

这里G03307GFID。我需要这个:

代码语言:javascript
复制
HexNAc(b1-?)[Fuc(a1-?)]GlcNAc(b1-2)Man(a1-3)[HexNAc(b1-?)[Fuc(a1-?)]GlcNAc(b1-2)Man(a1-6)]Man(b1-4)GlcNAc(b1-4)[Fuc(a1-6)]GlcNAc

为此,我尝试使用selenium

代码语言:javascript
复制
from selenium import webdriver
from selenium.webdriver.chrome.options import Options

chrome_options = Options()
chrome_options.add_argument('--headless')
driver = webdriver.Chrome('', options = chrome_options)

# takes accession number and returns IUPAC
def getIUPAC(acc_no):

    url = 'https://glytoucan.org/Structures/Glycans/' + acc_no

    driver.get(url)
    IUPAC = driver.find_element_by_xpath('//*[@id="descriptors"]/togostanza-iupaccondensed//main/div/pre/code/text()')
    driver.close()

    return IUPAC

IUPAC = getIUPAC('G37498VS')

print(IUPAC)

它说元素不存在。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-05-25 03:55:36

代码语言:javascript
复制
import re
import requests

def getIUPAC(acc_no):
    ret = requests.get('https://glytoucan.org/Structures/Glycans/{}'.format(acc_no))
    z = re.search('<meta name="description".*?The IUPAC representation is (.+)\.\s+The', ret.content, re.DOTALL | re.MULTILINE)
    return z if z else 'Unknown'


print('IUPAC is {}'.format(getIUPAC('G03307GF')))

结果是..。

代码语言:javascript
复制
IUPAC is HexNAc(b1-?)[Fuc(a1-?)]GlcNAc(b1-2)Man(a1-3)[HexNAc(b1-?)[Fuc(a1-?)]GlcNAc(b1-2)Man(a1-6)]Man(b1-4)GlcNAc(b1-4)[Fuc(a1-6)]GlcNAc
票数 2
EN

Stack Overflow用户

发布于 2019-05-25 19:45:12

最好使用VeNoMouS所示的请求。只是想补充一下,您得到的是element does not exist,因为在您打印它之前,驱动程序已经关闭。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56301419

复制
相关文章

相似问题

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