You can generalize the url creation with a method:
def build_url(gene):
return 'https://www.ncbi.nlm.nih.gov/nuccore/' + gene + '.1?report=fasta'
Then, to build for every gene
you can iterate over the initial list and apply the function build_url
for every gene.
# Generic extraction of list genes from csv
genes = extract_list(csv)
# Using list comprehension
genes_urls = [build_url(gene) for gene in genes]
# Using regular for
genes_urls = []
for gene in genes:
genes_urls.append(build_url(gene))
Following this answer, to make a request, you would simply do:
import requests
# Using list comprehension
res = [requests.get(url) for url in genes_urls]
# Using regular for
res = []
for url in genes_urls:
res.append(requests.get(url))
Additionally, you can use multithreading to speed up the requests.