Further inspecting the source code of the downloaded page, I found the following: <!-- language: lang-html --> <li id="nav-sequences" class="module-load transcript" wname="sequences" href="/rest/widget/transcript/K06C4.12/sequences"> <span class="ui-icon ui-icon-close module-close" wname="sequences" </span> Sequences </li> This suggested me to have a look at <http://www.wormbase.org/rest/widget/transcript/K06C4.12/sequences> and I obtained a page containing the elements found in the DOM inspector. This can be parsed, for instance using the [`bs4` python module](https://www.crummy.com/software/BeautifulSoup/bs4/doc/): <!-- language: lang-python --> # To get the page import requests # To parse the page content from bs4 import BeautifulSoup # To get this into Biopython from io import StringIO from Bio import SeqIO rest_template = "http://www.wormbase.org/rest/widget/transcript/{accession}/sequences" rest = rest_template.format(accession="K06C4.12") # This did not work with "html.parser" soup = BeautifulSoup(requests.get(rest).text, "html5lib") def generate_fasta(soup): name = None for div in soup.find_all("div"): if "ui-helper-hidden" in div["class"]: if div["id"] == "content": fasta = SeqIO.read(StringIO(div.text), "fasta") description_fields = fasta.description.split() if len(description_fields) == 4: fasta.id = "_".join(description_fields[:2]) if name is None: name = fasta.name elif len(description_fields) == 2: # This assumes that the "conceptual_translation" # is after the "unspliced + UTR" or "spliced + UTR" # Otherwise, one would need to pass # the accession as function parameter fasta.id = f"{name}_translation" else: fasta.id = "_".join(description_fields) yield (fasta.id, fasta) records_dict = dict(generate_fasta(soup)) print(records_dict['K06C4.12_spliced']) print(records_dict['K06C4.12_translation']) Output: ID: K06C4.12_spliced Name: K06C4.12 Description: K06C4.12 spliced + UTR Number of features: 0 Seq('ATGGCCCCACCAAAGCCGTCTGCTAAAGGAGCAAAGAAAGCCGCCAAGACCGTC...TAA', SingleLetterAlphabet()) ID: K06C4.12_translation Name: conceptual Description: conceptual translation Number of features: 0 Seq('MAPPKPSAKGAKKAAKTVTKPKDGKKRRHARKESYSVYIYRVLKQVHPDTGVSS...SK*', SingleLetterAlphabet())