某些页面不会在 ajax 上返回原始数据(如 json、xml 或 html)。相反,他们使用一些框架,例如 dojo,其中 ajax 调用返回 js 文件,这些文件以某种方式填充 html 节点。
我想知道是否有非 Selenium 策略可以从这些页面中抓取数据。
最佳答案
除了基于 selenium
或 webkit
的方法之外,您还可以使用 javascript 代码解析器解析 javascript,例如 slimit
。它肯定会提高网络抓取的复杂性和可靠性,因为你使用它来使用裸露的硬核金属 - 将其视为“白盒”方法,而不是基于 Selenium 的高级“黑匣子”之一。
这是我针对您所询问的完全相同的主题/问题给出的答案:
它涉及使用 slimit
从 javascript 代码中获取对象,通过 json
模块将其加载到 python 数据结构,并使用 解析内部的 HTML >BeautifulSoup
解析器。
关于python - 抓取返回生成 html 节点的 javascript 文件的 ajax 页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27444710/