无法使用BeautifulSoup解析数据:Python3

时间:2018-11-09 19:04:38

标签: python selenium-webdriver web-scraping beautifulsoup html-parsing

[请单击此处查看标签] [1]

以下是我要剪贴的网站的表格之一。在这里,我希望在“ tbody”下单击“奇数”和“偶数”类下的“ MS”按钮标签,这为我提供了用于进一步解析的不同表格。 我正在使用Selenium和Python 3进行Web抓取。 当前代码仅单击第一行中的“ MS”按钮。我该如何创建一个for循环,以便遍历所有行并单击所有行中的“ MD”元素?

谢谢。

以下是代码:

table_0=table.find_element_by_tag_name('tbody')
  for buttons in table_0.find_elements_by_tag_name("tr"):
     buttons.find_elements_by_xpath('//tr[@class="odd"]')
     buttons.find_element_by_xpath('//button[text()="MS"]').click()
  for buttons in table_0.find_elements_by_tag_name("tr"):
     buttons.find_elements_by_xpath('//tr[@class="even"]')
     buttons.find_element_by_xpath('//button[text()="MS"]').click()

1 个答案:

答案 0 :(得分:0)

您应该能够使用CSS选择器来收集点击对象

.btn-group.btn-group-xs button:first-child

选择器当然可以工作:

不确定是否需要等待,但也许像这样:

elements = driver.find_elements_by_css_selector(".btn-group.btn-group-xs button:first-child")
for element in elements:
    element.click()

from selenium import webdriver
from selenium.webdriver.common.keys import Keys

driver = webdriver.Chrome()

driver.get("https://ibl.mdanderson.org/fasmic/#!/")
driver.find_element_by_css_selector("input[type='text']").send_keys("AKT1 (3 mutations)")
driver.find_element_by_css_selector("input[type='text']").send_keys(Keys.RETURN)

elements = driver.find_elements_by_css_selector(".btn-group.btn-group-xs button:first-child")
for element in elements:
    element.click()