我正在使用Python从网站上抓取内容。首先,我用BeautifulSoup
和Mechanize
Python的,但我看到,该网站有一个按钮,通过JavaScript创建的内容,所以我决定使用Selenium
。
假设我可以使用Selenium和诸如之类的方法来查找元素并获取其内容driver.find_element_by_xpath
,那么BeautifulSoup
当我可以对所有内容都使用Selenium时,有什么理由要使用?
在这种特殊情况下,我需要使用Selenium来单击JavaScript按钮,以便更好地使用Selenium进行解析还是应该同时使用Selenium和Beautiful Soup?
在直接回答问题之前,值得一开始:如果您需要做的就是从静态HTML页面提取内容,则可能应将HTTP库(例如Requests或内置urllib.request
)与lxml
或BeautifulSoup
而不是Selenium(尽管硒可能也足够了)。不需要使用硒的优点:
requests
。请注意,要求cookie起作用的站点并不是破解Selenium的理由-您可以轻松创建一个URL开启函数,该函数使用cookielib / cookiejar神奇地设置和发送HTTP请求中的cookie。
好的,那您为什么还要考虑使用Selenium?几乎完全可以处理您要爬网的内容是通过JavaScript添加到页面而不是烘焙为HTML的情况。即使这样,您也可以在不破坏重型机械的情况下获得所需的数据。通常,以下情况之一适用:
如果您确实确定使用Selenium的情况值得考虑,请在无头模式下使用它,(至少)Firefox和Chrome驱动程序支持。Web爬虫通常不需要实际图形化显示页面,也不需要使用任何特定于浏览器的怪癖或功能,因此理想的选择是无头浏览器-它具有较低的CPU和内存成本以及较少的死机或挂起活动部件。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句