【问题标题】:Can selenium automation be used with BS4?硒自动化可以与 BS4 一起使用吗?
【发布时间】:2020-04-09 06:11:35
【问题描述】:

我正在使用selenium 进行自动化和抓取。现在我发现它在某些网站上太慢了。如果我使用beautifulSoup,那么我可以更快地抓取它们,但无法完成自动化。

有没有什么地方可以让网站自动化(按钮点击事件等),也可以在beautifulSoup 上用它来抓取网站?

您能给我一个使用bs4 + selenium 的按钮/搜索自动化示例吗?

任何帮助将不胜感激......

【问题讨论】:

  • 是的,你可以同时使用。
  • 你能给我看一个真实的例子吗? @0m3r
  • 如果您的问题是“我怎样才能同时获得 Beautifulsoup 的速度和 Selenium 的功能?” 那么答案是否定的,你不能。

标签: python python-3.x selenium web-scraping beautifulsoup


【解决方案1】:

例子

from bs4 import BeautifulSoup as Soup
from selenium import webdriver

driver = webdriver.Chrome()
driver.get("https://stackoverflow.com/questions/tagged/beautifulsoup+selenium")
page = Soup(driver.page_source, features='html.parser')
questions = page.select("#questions h3 a[href]")

for question in questions:
    print(question.text.strip())

或者只是

import requests
from bs4 import BeautifulSoup as Soup


url = 'https://stackoverflow.com/questions/tagged/beautifulsoup+selenium'
response = requests.get(url=url)
page = Soup(response.text, features='html.parser')
questions = page.select("#questions h3 a[href]")

for question in questions:
    print(question.text.strip())

记得阅读https://stackoverflow.com/robots.txt

【讨论】:

    【解决方案2】:

    绝对。您可以使用 selenium 完成所有渲染并将页面源传递给 beautifulsoup,如下所示:

    from bs4 import BeautifulSoup as bs
    soup = bs(driver.page_source,'html.parser')
    

    【讨论】:

    • 这将使用原始的静态页面源还是实时 DOM?
    • @Tomalak 当然是实时 dom,如果它传递静态 dom 那就没用了,我们应该首先使用请求。
    • 同意。我只是不确定会发生什么。
    【解决方案3】:

    这个如何让它活 DOM 和加载的 js 所以,享受并节省你的时间搜索,想法是得到整个身体,如果你也想头做替换身体,它会和 selenium 一样,希望大家喜欢。

    options = Options()
    options.add_argument('--headless')
    options.add_argument('--disable-gpu')
    dri = webdriver.Chrome(options=options)
    html = dri.find_element_by_tag_name("body").get_attribute('innerHTML')
            soup = BeautifulSoup(html, features="lxml")
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-10-14
      • 1970-01-01
      • 2017-12-10
      • 2014-05-18
      • 1970-01-01
      • 2014-02-15
      相关资源
      最近更新 更多