答案 0 :(得分:1)
这是非常广泛的问题。基本上效率取决于以下标准:
以下是影响效率的方式:
计算机性能
如果您要定位大型电子商务网站,或者该网站使用大量的javascript(如LinkedIn),那么您应该考虑使用适度的性能实例(计算机)来完成您的工作。请注意,如果您的计算机内存太小,
scrapy-splash
的泊坞窗容器将自动停止并导致您的蜘蛛立即失败。与Windows Home Edition
相比,您最好选择Ubuntu
,因为ubuntu使用较少的内存等。无论您选择哪种操作系统,Server-Edition
总是优于Home-Edition
。
情况1 :(使用Scrapy®与Selenium Web驱动程序)
情况2 :(使用Scrapy-Scrapy-spalsh javascript渲染服务)
网络稳定性
当您的实例(计算机)离目标网站太远时,网络稳定性会计算在内。您的网络速度和延迟将直接影响您的蜘蛛,有时会导致灾难。低网络速度会降低您的请求速度,而延迟有时会导致您的蜘蛛无法加载您的目标网页。这将导致未来内容提取出错。您的程序可以捕获异常并立即退出,如果您不使用现代蜘蛛框架,将来不会重新获取错误页面,因此您将丢失一些数据。与家庭网络蜘蛛相比,在公共云上部署蜘蛛是一种更好的解决方案。
反反恐技术
提取方法
这实际上是一个brad主题,您可以使用快速性能技术来定位xpaths,bs4,css等元素,同时还可以使用深度学习或搜索甚至正则表达式等低性能技术< / p>
美丽的汤(又名bs4):
如果要解析复杂的网站HTML,BeutifulSoup不是一个好的解决方案。它不支持xpath或css选择器,因此您必须手动找出网站的元素层次结构,并导致某些代码喜欢这样。
for level1 in bs_obj.find_all("div", {"id", "classname"})
for level 2 in bs_obj.find_all("div", {"class", "classname"})
for level3 in bs_obj.find_all("a", {"class", "classname"})
for level4 ........
....
....
Xpath和CSS选择器:
正则表达式(又名重新):
Scrapy与xpath,css集成,通过parsel,您可check this tutorial to lean how to use them within scrapy
Scrapy
是一个抓取框架,而bs4
是一个内容提取框架,所以答案就是use BeautifulSoup in Scrapy
。