为了账号安全,请及时绑定邮箱和手机立即绑定

python beautifulsoup - 如何在下一页没有唯一地址的情况下转到下一页

python beautifulsoup - 如何在下一页没有唯一地址的情况下转到下一页

慕村225694 2021-09-28 13:53:24
我正在尝试使用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。


查看完整回答
反对 回复 2021-09-28
  • 1 回答
  • 0 关注
  • 212 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信