在搜索栏中使用send_keys(Python)后,如何解析网站的搜索结果?

我的问题与此帖子有关:在搜索栏中输入查询并抓取结果

我能够执行针对前一个问题的答案,但是无法通过循环浏览从Chrome导航至的网站上抓取数据book我只找到了答案,这些答案将显示如何从d代码中抓取数据,而在使用之后则无法从搜索结果中抓取数据send_keys

我尝试访问该元素,但是无法访问,我想在搜索book然后进入下一轮循环之后从结果网站中抓取数据

我试过了:

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.by import By
d = webdriver.Chrome('mypath/chromedriver.exe')
books = ['9780062457738']
for book in books:
  d.get('https://www.bol.com/nl/')
  e = d.find_element_by_id('searchfor')
  f = print(e.send_keys(book, Keys.ENTER))

我也尝试过不使用该print()函数,但是如果输入以下内容,它不会返回任何实际元素f?

Type:        NoneType
String form: None
Docstring:   <no docstring>

非常欢迎在提交搜索查询如何解析书籍,书名或其他信息等数据的任何帮助

DebanjanB

要提取并预订标题(即不给F * ck的技巧),您需要为引入WebDriverWaitvisibility_of_element_located()并且可以使用以下两种定位策略之一

  • 使用CSS_SELECTOR

    driver.get("https://www.bol.com/nl/")
    WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "button.js-confirm-button>span"))).click()
    WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "input#searchfor"))).send_keys("9780062457738")
    driver.find_element_by_css_selector("button[type='submit']").click()
    print(WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.CSS_SELECTOR, "a.product-title"))).get_attribute("innerHTML"))
    
  • 使用XPATH

    driver.get("https://www.bol.com/nl/")
    WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//span[text()='Accepteren']"))).click()
    WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//input[@id='searchfor']"))).send_keys("9780062457738")
    driver.find_element_by_xpath("//button[@type='submit']").click()
    print(WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.XPATH, "//a[contains(@class, 'product-title')]"))).get_attribute("innerHTML"))
    
  • 控制台输出:

    The Subtle Art of Not Giving a F*ck
    
  • 注意:您必须添加以下导入:

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

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在python中使用urllib解析Google搜索结果时出错

如果在ios8中使用搜索栏找不到结果,如何隐藏节标题

如何使用MarkLogic搜索在rest API中使用转换结果?

如何使用BeautifulSoup在Python中解析Google搜索结果

如何使用python从网站的搜索栏中提取数据?

使用Python在Selenium中使用send_keys()从数据帧发送值

如何在Beautiful Soup 4(Python)中使用搜索栏

如何解析大型JSON文件以获取搜索栏建议

在python中使用Selenium send_keys复制文本

如何在Python Selenium中随机使用send_keys?

为什么我无法使用Selenium将send_keys发送到Python中的Twitch搜索栏?

如何使用Selenium和Python在文本区域中使用send_keys

Chrome中的Google搜索<mark>如何解决滚动后消失的网站上的问题

如何在Python硒中使用JavascriptExecutor代替send_keys

使用BeautifulSoup和Python解析Reddit搜索结果

如何在Smartsheet Python SDK中使用搜索结果?

如何使搜索结果显示在搜索栏下方的字段中?

搜索后如何重置操作栏搜索?

您如何从搜索栏中对GitHub搜索结果进行排序?

如何在搜索栏输入中使用“-”更改空间

如何使用bs4 / python从Wikipedia网站获取txt文件中单词的搜索结果?

如何实现这个水平搜索结果栏?

如何使用 EditText 在 WebView 中的网站搜索栏上进行搜索?

如何编写 Python 脚本以使用网站的搜索栏在特定网站的数据库中搜索关键字?

如何对在 Django 中使用关键字搜索后显示的对象结果进行排序

使用 Python 从网站的搜索栏中获取价格

使用python在网站上搜索并返回结果?

如何在 Reactjs 中使用搜索栏过滤表格行

使用 python 抓取网站后,如何搜索特定文本?