python - 从网站生成和下载 tsv(使用 python)
问题描述
我有这个网站,想写一个脚本,它可以执行一个代码,它提供与单击“导出”->“生成 tsv”->“等待生成”->“下载”相同的输出。最终目标是将其用于大约列表。我在 .txt 中拥有的 1700 种蛋白质(因此提取一种蛋白质,在本例中为“Q9BXF6”并将其放入网址中:https ://www.ebi.ac.uk/interpro/protein/UniProt/Q9BXF6/entry/InterPro /#table ) 并将所有结果下载到 .tsv 文件中。
我尝试检查“导出”按钮,但源代码没有显示(或者我不知道在哪里看)。我也试过这个:
r = requests.get('https://www.ebi.ac.uk/interpro/protein/UniProt/Q9BXF6/entry/InterPro/#table')
soup = BeautifulSoup(r.content, 'html.parser')
找到我需要的东西,但它会输出一堆我无法理解的字符。我还尝试下载整个页面,就像使用 urllib 库一样:
myurl = 'https://www.ebi.ac.uk/interpro/protein/UniProt/Q9BXF6/entry/InterPro/#table'
urllib.request.urlopen() as f:
html = f.read().decode('utf-8')
或者
urllib.urlretrieve (myurl, 'interpro.txt') # although this didn't work
似乎所有内容都写在其他地方并被引用,并且我尝试过的所有内容都输出了一些愚蠢的东西,但我对 html 一无所知,并且对 python 真的很陌生(我只使用 R)。
解决方案
对于您的第一个问题,您可以使用URL
以下元素的 来检索下一个问题所需的蛋白质值。
href="blob:https://www.ebi.ac.uk/806960aa-720c-4958-9392-f242adee627b"
URL
设置为标签,然后href
您可以使用它来发出下载文件的请求。您也可以通过右键单击下载按钮来获取它,TSV
然后单击Inspect-Element
您将能够看到此href
标签的存在。
之后,通过例如下载
import urllib.request
url = 'https://www.ebi.ac.uk/806960aa-720c-4958-9392-f242adee627b'
urllib.request.urlretrieve(url, '/Users/abc/Downloads/file.tsv') # any dir to save
with open("/Users/abc/Downloads/file.tsv") as file_in:
for line in file_in:
#here make your calls for your second problem.
你也可以使用Web-Automator
selenium 来优雅地解决这个问题。如果后者感兴趣,请调查一下——这并不难。
推荐阅读
- pandas - bin 大小生成的索引错误,
- python - cursor.rowfactory (cx_oracle) 如何以字典格式返回每一行?
- python-3.x - 我迷失在数学运算中
- php - 如何从php中的字符串中删除特定字符和特殊字符
- javascript - 如何在asp.net mvc视图上调用打字稿方法
- javascript - 当我有多个标签时,在 Riot.js 的数组中删除对象
- android - FirebaseRecyclerAdapter 的问题,在删除数据时在空对象引用上
- sql - Oracle 查询到 PostgreSQL 的转换
- vps - 在 vps 上找不到 phpmyadmin 404
- tensorflow - tensorflow-gpu 错误:由于 EnvironmentError 无法安装软件包:[Errno 2] 没有这样的文件或目录: