我正在尝试使用beautifulsoup编写一个网络爬虫从https://www.ncbi.nlm.nih.gov/gene/?term=Celiac+disease中提取基因名称我的代码可以从第一页得到我想要的结果,但是我不知道如何编写代码让我的程序移动到下一页。单击“下一步”按钮后,我得到一个与上一页无关的新地址。例如,第一页的地址是https://www.ncbi.nlm.nih.gov/gene/?term=Celiac+disease,但下一页的地址是https://www.ncbi.nlm.nih 。 gov/gene(尽管仍显示与腹腔疾病相关的结果)我查了 google 和 stackoverflow 看看有没有与这个问题相关的文章。但我只能找到关于带有相似地址的页面的文章,并且(对我来说)在逻辑上遵循他们的轨迹。from bs4 import BeautifulSoupfrom urllib.request import urlopengene_result = []url = "https://www.ncbi.nlm.nih.gov/gene/?term=Celiac+disease"html = urlopen(url).read()soup = BeautifulSoup(html, "html5lib")tbody = soup.find("tbody")a_href = tbody.find_all("a")for x in a_href: gene = x.contents[0] gene_result.append(gene)print(gene_result)代码在第一页上爬行很好,我得到了很好的结果:['CTLA4', 'HLA-DQA1', 'IL2', 'IL21', 'CCR3', 'CELIAC2', 'ATXN2', 'SH2B3', 'HLA-DQB1', 'CELIAC5', 'TAGAP', 'CELIAC7', 'CELIAC13', 'CELIAC12', 'CELIAC11', 'CELIAC10', 'CELIAC9', 'CELIAC8', 'CELIAC6', 'KIAA1109']有人可以帮我解决这个问题吗?
1 回答
叮当猫咪
TA贡献1776条经验 获得超12个赞
对于此类网站,您需要使用称为selenium webdriver 和 python 的东西。
您将需要通过 Python 代码中的此 webdriver 模拟单击“下一步”按钮,然后将 html_source 读入 BeautifulSoup。
添加回答
举报
0/150
提交
取消