Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 无法将主页加载到webscrape,下一页不存在';不要更改url_Python_Selenium - Fatal编程技术网

Python 无法将主页加载到webscrape,下一页不存在';不要更改url

Python 无法将主页加载到webscrape,下一页不存在';不要更改url,python,selenium,Python,Selenium,我正试图从以下方面获取数据: 第一个登录页面可以通过转到上面的url并单击橙色按钮“Cari sekolah”来访问。 生成的页面具有以下url:。不幸的是,当启动url时,结果是无法找到一个声明指定url的页面 另外,如果当我点击第二、第三等页面时url没有改变,我该如何转到下一页? 非常感谢您的帮助,我的代码到目前为止还没有实现: from selenium import webdriver from selenium.webdriver import Chrome import pan

我正试图从以下方面获取数据: 第一个登录页面可以通过转到上面的url并单击橙色按钮“Cari sekolah”来访问。

生成的页面具有以下url:。不幸的是,当启动url时,结果是无法找到一个声明指定url的页面

另外,如果当我点击第二、第三等页面时url没有改变,我该如何转到下一页?

非常感谢您的帮助,我的代码到目前为止还没有实现:

from selenium import webdriver
from selenium.webdriver import Chrome
import pandas as pd

option = webdriver.ChromeOptions()
option.add_argument('--incognito')

webdriver = "/Users/rainer/Desktop/learnpython/web/chromedriver"

driver = Chrome(executable_path=webdriver, chrome_options=option)

url = 'http://sekolah.data.kemdikbud.go.id/index.php/chome/pencarian/'

driver.get(url)

诱导
WebDriverWait
()并等待
元素可点击
()

导入以下库

from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
到达
next
页面后,您需要单击每个
页面按钮
进入
next页面
。例如,我提供了15页的范围,您可以增加计数

url="http://sekolah.data.kemdikbud.go.id/"
driver.get(url)
WebDriverWait(driver,15).until(EC.element_to_be_clickable((By.XPATH,"//button[text()='Cari Sekolah']"))).click()
for i in range(2,15):
    try:
        WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.XPATH, "//ul[@id='list']//a[text()='" + str(i) + "']"))).click()
        print("page number #" + str(i))
        time.sleep(1)
    except:
        print("No such element")
        break

完整代码:

from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
import time

option = webdriver.ChromeOptions()
option.add_argument('--incognito')
driver=webdriver.Chrome(options=option)
url="http://sekolah.data.kemdikbud.go.id/"
driver.get(url)
WebDriverWait(driver,15).until(EC.element_to_be_clickable((By.XPATH,"//button[text()='Cari Sekolah']"))).click()
for i in range(2,15):
    try:
        WebDriverWait(driver, 30).until(EC.element_to_be_clickable((By.XPATH, "//ul[@id='list']//a[text()='" + str(i) + "']"))).click()
        print("page number #" + str(i))
        time.sleep(1)
    except:
        print("No such element")
        break

您尝试提交了吗?对不起,提交是什么意思?从第一页开始提交表单。它将向您显示第二页。您可以分享如何做到这一点吗?我尝试使用驱动程序。通过xpath(“//按钮[text()='Cari Sekolah']”)查找元素。单击()但不起作用谢谢!这很有效。转到下一页,它似乎不起作用。html代码是。。。有什么建议吗?@rs26:你看到我为下一页提供的代码了吗?是的,我复制了上面的代码。但是页面似乎没有加载以显示第2页的新条目。它返回“no-this-element”,所以我认为try的第一部分不会返回work@rs不应该,我已经测试了正常chrome和隐姓埋名模式。两者都工作正常。你得到了什么错误?没有错误。。只是当代码进入for循环时,它不会打印这样的元素..:(…很抱歉问了很多问题,仍在学习如何做到这一点
from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
import time

option = webdriver.ChromeOptions()
option.add_argument('--incognito')
driver=webdriver.Chrome(options=option)
url="http://sekolah.data.kemdikbud.go.id/"
driver.get(url)
WebDriverWait(driver,15).until(EC.element_to_be_clickable((By.XPATH,"//button[text()='Cari Sekolah']"))).click()
for i in range(2,15):
    try:
        WebDriverWait(driver, 30).until(EC.element_to_be_clickable((By.XPATH, "//ul[@id='list']//a[text()='" + str(i) + "']"))).click()
        print("page number #" + str(i))
        time.sleep(1)
    except:
        print("No such element")
        break