如何使用python

时间:2015-10-05 06:47:44

标签: python extract webpage

我正在尝试提取此网站上的数据" https://www.ncbi.nlm.nih.gov/nucleotide/209750423?report=genbank#"。当我使用urllib提取内容时,我能够通过选择“查看页面源”来提取我得到的数据。右键单击浏览器后,我想要的是实际序列' atggctgaga tgaaaaacct 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()

2 个答案:

答案 0 :(得分:0)

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

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

顺便说一下,在抓取在线内容之前一定要检查版权问题。

答案 1 :(得分:0)

数据由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