Você pode usar um loop de shell para processar os IDs, curl
ou wget
para obter os dados e ferramentas como pup
para obter o processo do HTML. Por exemplo, digamos que os IDs estejam em um arquivo chamado foo
, então você pode fazer:
while read id
do
curl -sL "https://www.ebi.ac.uk/chembl/compound/inspect/$id" |
pup 'tr:parent-of(td:contains("Canonical SMILES")) td:nth-child(2) text{}'
done < foo
Aqui, usei o comando pup
para:
- procure uma tabela contendo
Canonical SMILES
-td:contains("...")
- obtenha a linha pai disso -
tr:parent-of(...)
- e imprime a segunda célula nessa linha:
td:nth-child(2) text{}
Eu recebo a saída como:
CC1=CN([C@H]2C[C@H](N=[N+]=[N-])[C@H](O2)C(=O)N)C(=O)NC1=O
NC(=O)[C@H]1O[C@H](C[C@@H]1N=[N+]=[N-])N2C=CC(=O)NC2=O
NC1=NC(=O)N(Cc2cn(nn2)[C@H]3C[C@H](O)[C@@H](CO)O3)C=C1
CC1(C)CC[C@@]2([C@H](O)C[C@]3(C)C(=CC[C@@H]4[C@@]5(C)CCC(N)C ...
Download SMILES
COC(=O)c1nn(c2cccc(F)c2)c3c4ccccc4S(=O)(=O)N(C)c13
COC(=O)[C@H](C)NP(=O)(OC[C@H]1O[C@@H](N2C=CC(=O)NC2=O)[C@](C ...
Download SMILES
CCO[C@]1(CO)O[C@H]([C@H](O)[C@@H]1O)N2C=CC(=NC2=O)N
Deixo para você examinar o HTML e descobrir os outros filtros.