Python 作业只会刮取一页,并且在单击所有复选框时不起作用

Python 作业只会刮取一页,并且在单击所有复选框时不起作用,python,python-3.x,selenium,selenium-webdriver,web-scraping,Python,Python 3.x,Selenium,Selenium Webdriver,Web Scraping,我正在努力刮下的网站,其中一个工作的数据。但是,只要单击复选框,作业就不起作用。前面您可以看到,我只检测到24个元素,并且没有单击复选框,即正确地刮取 只要我点击复选框,就会有更多的元素,它不能正常工作,如下所示。为什么要这样做?我认为硒一般应该刮去它所看到的东西,但在这种情况下它并没有这样做 您可以使用下面类似的方法获取团队名称。添加更多代码 from selenium import webdriver import json import time driver = webdriver.C

我正在努力刮下的网站,其中一个工作的数据。但是,只要单击复选框,作业就不起作用。前面您可以看到,我只检测到24个元素,并且没有单击复选框,即正确地刮取

只要我点击复选框,就会有更多的元素,它不能正常工作,如下所示。为什么要这样做?我认为硒一般应该刮去它所看到的东西,但在这种情况下它并没有这样做


您可以使用下面类似的方法获取团队名称。添加更多代码

from selenium import webdriver
import json
import time

driver = webdriver.Chrome()

driver.get("https://www.palmerbet.com/sports/soccer")

values = []
time.sleep(5)
for elem in driver.find_elements_by_css_selector("li.sport-grp-filter.filter_item input"):
    val = elem.get_attribute("value")
    values.append(val)

for val in values:
    driver.get("https://www.palmerbet.com/sports/getroundmatches/socc/" + val)

    json_data = driver.find_element_by_tag_name("pre").text
    data = json.loads(json_data)

    for item in data["m"]:
        print (item["mta"]["cn"], item["mtb"]["cn"])

你试过在点击之间添加睡眠吗?@Hunter Yeap,对我来说没什么区别。我有一个可怕的建议,你可以运行初始选择器,选中一个框,再次运行,然后查找未选中的框,然后选中,然后重复。为什么不使用他们的json端点呢?并直接从中获取数据从中删除双引号url@Shahin,在这种情况下,您应该首先发表评论并提出更改建议。您不应该在某人的答案中更改代码到这种程度。我没有使用请求的原因是因为有时候,这些方需要cookies,所以最好使用浏览器本身谢谢!这比标准方法有点混乱。有没有关于这种方法的指南?
from selenium import webdriver
import json
import time

driver = webdriver.Chrome()

driver.get("https://www.palmerbet.com/sports/soccer")

values = []
time.sleep(5)
for elem in driver.find_elements_by_css_selector("li.sport-grp-filter.filter_item input"):
    val = elem.get_attribute("value")
    values.append(val)

for val in values:
    driver.get("https://www.palmerbet.com/sports/getroundmatches/socc/" + val)

    json_data = driver.find_element_by_tag_name("pre").text
    data = json.loads(json_data)

    for item in data["m"]:
        print (item["mta"]["cn"], item["mtb"]["cn"])