从“中提取结果”;结果页";在Python中使用Selenium

从“中提取结果”;结果页";在Python中使用Selenium,python,selenium,webdriver,search-engine,search-engine-bots,Python,Selenium,Webdriver,Search Engine,Search Engine Bots,不幸的是,我的Python程序的实现有一个小问题。在某一点上,我不能再进一步了。程序应执行以下操作: 在搜索引擎“www.startpage.com”上自动搜索特定关键字 然后应该读出包含结果的页面(问题就在这里) 程序现在应该计算某个单词在搜索结果页面上出现的频率 这里的问题是我无法从搜索结果页面获取源代码。我只得到起始页的源代码,有人知道解决方案吗 提前谢谢 到目前为止,我的程序如下所示: import selenium.webdriver as webdriver def get_res

不幸的是,我的Python程序的实现有一个小问题。在某一点上,我不能再进一步了。程序应执行以下操作:

  • 在搜索引擎“www.startpage.com”上自动搜索特定关键字
  • 然后应该读出包含结果的页面(问题就在这里)
  • 程序现在应该计算某个单词在搜索结果页面上出现的频率
  • 这里的问题是我无法从搜索结果页面获取源代码。我只得到起始页的源代码,有人知道解决方案吗

    提前谢谢

    到目前为止,我的程序如下所示:

    import selenium.webdriver as webdriver
    
    def get_results(search_term):
    
        #this is the site, where I want to do the search
        url="https://www.startpage.com"
        browser = webdriver.Firefox()
        browser.get(url)
    
        search_box = browser.find_element_by_id("q")
        #search in the search box after the search term
        search_box.send_keys(search_term)
        search_box.submit()
    
        #print(browser.page_source) would give the result of the startpage (not the result page)
    
        sub="dog"
        print(source_code.count("dog"))
        #counts zero times because it searchs for "dog" at the startpage
    
    get_results("dog")
    
    

    你可以这样做:只要做一个循环,在这个循环中你总是在一个列表中添加一个元素(例如,可以是一个数字或一个字母)


    要做到这一点,您必须将源代码保存在一个变量中,然后只需搜索其中的术语。找到后,只需使用
    .append()
    向列表中添加一个数字,然后在最后使用
    len(list)
    检查列表的长度,您需要了解REST网页是如何工作的。提交搜索词会加载一个新页面,但您的代码永远不会这样做。(另外,
    source\u code
    不是一个定义的变量。请发布实际工作的代码,或者干脆删除这个问题。)正如其他参与者所提到的。加载页面需要一些时间。因此,在捕获
    浏览器之前。page\u source
    只需提供一些等待。您可以使用
    time.sleep(5)