首页 > 解决方案 > 手动登录后如何使用 selenium 抓取多个链接?

问题描述

我正在尝试从首先需要我登录的数据库中自动收集文章。

我已经使用 selenium 编写了以下代码来打开搜索结果页面,然后等待并允许我登录。这行得通,它可以获取搜索结果中每个项目的链接。

我想然后继续使用selenium继续访问搜索结果中的每个链接并收集文章文本

browser = webdriver.Firefox()
browser.get("LINK")
time.sleep(60)
lnks = browser.find_elements_by_tag_name("a")[20:40]
for lnk in lnks:
    link = lnk.get_attribute('href')
    print(link)

我不能再进一步了。然后我应该如何让它依次访问这些链接并获取每个链接的文章文本?

我试图添加 driver.get(link)到 for 循环,我得到了 'selenium.common.exceptions.StaleElementReferenceException'

应数据库所有者的要求,我删除了之前发布在此帖子中的屏幕截图,以及有关数据库的信息。我想完全删除该帖子,但我无法这样做。

标签: pythonseleniumauthenticationweb-scraping

解决方案


您需要寻求 bs4 tutroials,但这里是入门

html_source_code = Browser.execute_script("return document.body.innerHTML;")
soup = bs4.BeautifulSoup(html_source_code, 'lxml')
links = soup.find_all('what-ever-the-html-code-is')
for l in links:
    print(l['href'])


推荐阅读