python - 手动登录后如何使用 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'
应数据库所有者的要求,我删除了之前发布在此帖子中的屏幕截图,以及有关数据库的信息。我想完全删除该帖子,但我无法这样做。
解决方案
您需要寻求 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'])
推荐阅读
- python - Pytest:删除被测试函数创建的文件
- css - 我正在尝试从其他几个中格式化一个特定的验证消息
- android - arm-linux-androideabi-4.9 还是 arm-eabi-4.8?
- c - 执行二进制文件时出现“exec 格式错误”
- javascript - 有没有办法使用 Javascript 抓取动态页面
- sql - 在一次查询中创建一个新表并从 SQL Server 2017 中的旧表添加数据
- javascript - 在Javascript中将非unicode二进制字符串转换为字节数组
- amazon-web-services - 带有 docker 多容器和 Node 的 EB
- r - 多个度量和多个维度
- hibernate - 如何通过在 Spring Boot 中仅更改 hibernate 配置中的 db url 在运行时更改数据库连接?