python-3.x 如何根据静态或动态生成的元素自动选择美丽的汤或 selenium ?

dfddblmv  于 2023-08-08  发布在  Python
关注(0)|答案(1)|浏览(89)

有没有什么方法可以在抓取过程中使用锚点来分离内容类型,从而自动对每个内容进行分类?我想检查由bs 4在第一,如果它不成功,尝试与 selenium 分类网站刮刀类型到以下类别:1-美容汤2- selenium
静态呈现的网站示例:
Static rendered example 1
Static rendered example 2
动态渲染网站示例:Dynamic rendered example 1
如你所知,beautifulsoup无法抓取一些网站(动态渲染示例1),在这种情况下,我们需要选择selenium作为刮刀,但selenium不够快,我更喜欢在第一次使用bs 4,如果刮取不成功,我会在第二次使用selenium。
静态呈现的网站是好的,但问题是动态呈现的网站,你能建议我一个和平的代码来做吗?
我分别测试了selenium和bs 4,它工作正常,但我不知道如何根据内容类型自动检测刮刀类型。
谢谢你们

cpjpxq1n

cpjpxq1n1#

我不认为有一个可靠的方式来做你想要的,我想说有两种类型的动态渲染内容。

  • 通过JS请求将内容加载到API的常规网页
  • 一个完全使用JS框架构建的网站,如Vue,React,Angular等。

你可以检查每个框架的错误消息,比如“这个网站需要JS来工作……”,但这并不可靠。如果你从BS4开始,你应该事先验证内容是如何加载的,用requestsurllib或其他什么来编码请求,在这一点上,你也可以自己将网站分为静态或动态。
我认为你应该做的是总是使用selenium,如果解决方案A的工作率为60%,而解决方案B的工作率为100%,为什么要麻烦解决方案A呢?

相关问题