栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

selenium与BeautifulSoup进行网页抓取

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

selenium与BeautifulSoup进行网页抓取

在直接回答您的问题之前,值得一开始:如果您需要做的就是从静态HTML页面提取内容,则可能应将HTTP库(例如Requests或内置

urllib.request
)与
lxml
BeautifulSoup
而不是Selenium(尽管硒可能也足够了)。不需要使用硒的优点:

  • 带宽和运行脚本的时间。使用Selenium意味着获取在浏览器中访问页面时通常会获取的所有资源-样式表,脚本,图像等。这可能是不必要的。
  • 稳定且易于恢复错误。根据我的经验,即使使用PhantomJS,Selenium也可能有些脆弱,并且创建架构来杀死一个挂起的Selenium实例并创建一个新实例比使用时设置简单的异常重试逻辑更令人烦恼
    requests
  • 潜在地,CPU和内存的使用情况-根据要爬网的站点以及要尝试并行运行的蜘蛛线程的数量,可以想象DOM布局逻辑或Javascript执行可能会变得非常昂贵。

请注意,要求cookie起作用的站点并不是破解Selenium的理由-
您可以轻松创建一个URL开启函数,该函数使用cookielib
/
cookiejar神奇地设置和发送HTTP请求中的cookie。

好吧,那为什么还要考虑使用Selenium?几乎完全可以处理您要爬网的内容是通过Javascript添加到页面而不是烘焙到HTML中的情况。即使这样,您也可以在不破坏重型机械的情况下获得所需的数据。通常,以下情况之一适用:

  • 随页面提供的Javascript具有已经包含在其中的内容。Javascript就是在这里进行模板或其他DOM操作,将内容放入页面中。在这种情况下,您可能想看看是否有一种简单的方法可以使用regex直接从Javascript中提取您感兴趣的内容。
  • Javascript正在通过网络API加载内容。在这种情况下,请考虑是否可以识别相关的API URL并自己点击它们。与实际运行Javascript并从网页上抓取内容相比,这可能更加简单直接。

如果您 确实
确定使用Selenium的情况值得考虑,请在无头模式下使用它,(至少)Firefox和Chrome驱动程序支持。Web爬虫通常不需要实际图形化显示页面,也不需要使用任何特定于浏览器的怪癖或功能,因此理想的选择是无头浏览器-
它具有较低的CPU和内存成本以及较少的死机或挂起活动部件。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/470981.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号