根据url 在ensembl 网站爬取外显子等数据
需要先一步准备好url,我准备的url如下:
主要是g 和 t 两列内容不同
可以准备好g和t两列数据,用python自动补充好url链接,代码如下:
(注意:url不要是列表的形式,否则会报错)
此时这个html页面只有一个表格,其他的内容没有,所以可以直接写
tb = pd.read_html(urlValue)但是如果url里面,除了表格之外,还有其他的内容,则,需要在tb爬取的url后面标注爬取的表格的位置,如爬取第一个表格内容:
tb = pd.read_html(urlValue)[0]
import pandas as pd
import csv
with open('geneid.csv', encoding='utf-8') as file:
f_csv = csv.reader(file)
for i, rows in enumerate(f_csv):
if i >= 1:
print(rows)
urls = ['https://nov2020.archive.ensembl.org/Mus_musculus/Component/Transcript/Exons/exons?db=core;'
'g={};t={}'.format(rows[0], rows[1])]
for urlValue in urls:
print(urlValue)
df= pd.read_html(urlValue)
print(df)
col_name = df.columns.tolist()
col_name.insert(0, 'geneid')
col_name.insert(1, 'traid')
df = df.reindex(columns=col_name)
df['geneid'] = rows[0]
df['traid'] = rows[1]
df.to_csv(path, mode='a', encoding='utf_8', index=False,header=False)
print(str(urlValue) + '抓取完成')
df = pd.DataFrame(tb)
df.to_csv(r'58748-18094(2).csv', mode='a', encoding='utf_8', index=False)
print(str(urlValue) + '抓取完成')
也可以手动整理好url,直接拿来使用即可,但相对比较麻烦些
代码为:边爬取边存入表格
import pandas as pd
import csv
with open('C:/Users/Desktop/50.csv', encoding='utf-8') as file:
f_csv = csv.reader(file)
for i, rows in enumerate(f_csv):
if i >= 1:
for j in rows:
url = j
print(url)
tb = pd.read_html(url)[0]
print(tb)
df = pd.DataFrame(tb)
df.to_csv(r'C:/Users//Desktop/58.csv', mode='a', encoding='utf_8', index=False)
print(str(url) + '抓取完成')
Original: https://blog.csdn.net/weixin_51192038/article/details/123216721
Author: 佛系盼毕业
Title: 根据url 在ensembl 网站爬取外显子等数据
原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/678231/
转载文章受原作者版权保护。转载请注明原作者出处!