使用Python Selenium进行Web爬网

时间:2019-11-18 11:34:58

标签: python html selenium web-scraping

我正在尝试在Frankfurter Allgemeine Zeitung Archiv上进行WebScraping。我需要点击“ erweiterte suche”按钮,但我不断收到以下错误

  

消息:没有这样的元素:无法找到元素:{“ method”:“ xpath”,“ selector”:“ // * [@ id =” g_00271e6200ad4985a0a9c8f9b0032c42“]”}。

我的代码在这里:

import os
import requests
import openpyxl
import smtplib
import time

from selenium import webdriver

driver.get("https://fazarchiv.faz.net")

search_elem = driver.find_element_by_xpath("""//*[@id="searchForm"]/div[1]/input""")
search_elem.click()
search_elem.send_keys('Bürokratie')

erweiterte_suche = driver.find_element_by_xpath("""//*[@id="g_00271e6200ad4985a0a9c8f9b0032c42"]""")
erweiterte_suche.click()

我在做什么错了?

3 个答案:

答案 0 :(得分:1)

我想,您想单击“搜索”按钮。灰色的。

因此您可以搜索“Bürokratie”一词。

您的代码也缺少部分。 像驱动程序设置一样。

此代码对我有用,您可以使用:

    from selenium import webdriver
    driver = webdriver.Firefox()

    driver.get("https://fazarchiv.faz.net")

    search_elem = driver.find_element_by_xpath("""//*[@id="searchForm"]/div[1]/input""")
    search_elem.click()
    search_elem.send_keys('Bürokratie')

    erweiterte_suche = driver.find_element_by_css_selector("""#searchForm > div.boxRow.clearfix > input""")
    erweiterte_suche.click()

答案 1 :(得分:0)

该ID是动态的,并且每次加载网站时都会更改。改用班级

erweiterte_suche = driver.find_element_by_xpath('//*[@class="boxExtendedSearch ext-hidden globalArrowRedRight"]')

答案 2 :(得分:0)

尝试一下:

erweiterte_suche = driver.find_element_by_xpath("//div[@class='clearfix']/a[1]")

或者这个:

erweiterte_suche = driver.find_element_by_xpath("//a[text()='erweiterte Suche']")