【问题标题】:How to extract content from webpage as seen from browser using python如何使用python从浏览器中提取网页内容
【发布时间】:2015-10-05 06:47:44
【问题描述】:

我正在尝试提取此网站“https://www.ncbi.nlm.nih.gov/nucleotide/209750423?report=genbank#”上的数据。当我使用 urllib 提取内容时,我可以在右键单击浏览器后通过选择“查看页面源”来提取我得到的数据,但我想要的是实际序列 'atggctgaga tgaaaaaacct gaaaattgag gtggtgcgct ataacccgga... .' 可以通过右键单击浏览器并选择“检查元素”而不是通过“查看页面源”来提取。

我使用的代码是

f = open('out.html', 'w') 
response = urllib.urlopen("https://www.ncbi.nlm.nih.gov/nucleotide/209750423?report=genbank")   
f.write(response.read())
f.close()

【问题讨论】:

    标签: python extract webpage


    【解决方案1】:

    数据是通过js加载的,所以你可以得到下面的数据:

    import requests
    from pyquery import PyQuery
    
    r = requests.get("https://www.ncbi.nlm.nih.gov/sviewer/viewer.fcgi?val=209750423&db=nuccore&dopt=genbank&extrafeat=976&fmt_mask=0&retmode=html&withmarkup=on&log$=seqview&maxplex=3&maxdownloadsize=1000000")
    pq = PyQuery(r.content)
    div = pq(".ff_line")
    
    data = []
    for d in div:
        data.append(d.text)
    
    print data
    

    【讨论】:

      【解决方案2】:

      您应该花时间实际查看要抓取的页面。它只是一个加载一些 JS 应用程序的页面。然后应用程序从另一个地方加载实际数据。

      https://www.ncbi.nlm.nih.gov/sviewer/viewer.fcgi?val=209750423&db=nuccore&dopt=genbank&retmode=text

      顺便说一句,在抓取在线内容之前,请务必检查版权问题。

      【讨论】:

        猜你喜欢
        • 2014-08-10
        • 2020-11-22
        • 1970-01-01
        • 1970-01-01
        • 2013-07-01
        • 2012-02-07
        • 2013-01-06
        • 1970-01-01
        • 2013-02-16
        相关资源
        最近更新 更多