【发布时间】:2018-11-14 14:39:38
【问题描述】:
我在从第三个表的“文学”选项卡中解析数据时遇到问题。我到达餐桌的步骤:
转到 ibl.mdanderson.org/fasmic/#!
键入并选择 AKT1(3 个突变)(注意:'GO' 按钮不起作用,请单击下拉菜单中的选项)
单击带有文本“MS”的绿色按钮,将出现一个新表格。
在这个新表中,会有一个名为literature的选项卡,我需要文学文本和PMID。
我尝试了以下代码,但它给出了一个空列表:
xyz= driver.find_element_by_xpath("//*[contains(text(),'Literature')]").click()
for elements in driver.find_elements_by_xpath('//div[@class="tab-pane ng-scope active"]'):
soup = BeautifulSoup(driver.page_source, 'lxml')
table = soup.find('div', attrs={'id': "literature_div"})
table_body = table.find('h4')
rows = table.find_all('h4')
for row in rows:
cols = row.find_all('h4')
# cols = [ele.text.strip() for ele in cols]
litrature.append([ele for ele in cols if ele]) # Get rid of empty value
print("Data from COLUMN 1:")
print(litrature)
我该如何解决这个问题?
更新
当我尝试单击“文献”表下的“下一步”按钮时,出现以下错误:
“消息:的元素引用已过时;要么元素不再附加到 DOM,它不在当前框架上下文中,要么文档已被刷新“
以下是我添加以单击“NEXT”按钮的行:driver.find_element_by_xpath('//a[@ng-click="selectPage(page + 1, $event)"]').click()
我该如何解决这个问题?
【问题讨论】:
-
是否有您可以共享的 URL 以及您的其余代码?相关的 HTML 会有所帮助,使用通过edit 提供的 sn-p 工具插入。
-
@QHarr 以下是网址:ibl.mdanderson.org/fasmic/#!到达餐桌的步骤: - 访问 ibl.mdanderson.org/fasmic/#! - 键入并选择 AKT1(3 个突变)(注意:“GO”按钮不起作用,请单击下拉菜单中的选项) - 单击带有文本“MS”的绿色按钮,将出现一个新表。 - 在这个新表中,会有一个名为literature的选项卡,我需要Literature下表中的文学文本和PMID
-
@QHarr 单击“文献”表下的“下一步”按钮时遇到错误。消息:元素引用已过时;要么元素不再附加到 DOM,它不在当前框架上下文中,要么文档已被刷新
标签: python python-3.x web-scraping beautifulsoup