Web抓取模式窗口(对话框)使用jsoup
Web scraping of modal window(dialogue box) using jsoup
我正在学习关于我必须从网站提取数据的项目。该项目是在java和网站是在java脚本。我使用Jsoup从网站中提取数据,但在网页中存在一些模态窗口(对话框,弹出窗口)。那么,是否可以使用jsoup?????提取模态窗口的数据所以如果答案是肯定的,那我怎么能做到呢?请提供链接,如果没有,那么其他最好的方法是什么?
谢谢你的帮助。我真的很感激。
我假设模态是由Javascript生成的。Jsoup只是一个解析器。这意味着它将发出一个HTTP请求(GET或POST,无论你让它做什么),服务器(网站)将用初始的html响应。通过说初始,我的意思是在任何javascript被执行之前的html 。
Javascript可以生成html(如问题中的模态),但这对Jsoup是不可见的,因为解析器只能读取,它不能执行代码。浏览器之所以能够生成模态,是因为它包含了一个Javascript执行引擎,该引擎解析,而执行Javascript。
当你访问一个网页时,你不知道什么是动态的(由Javascript生成),什么是静态的(由服务器获取)。有一个小技巧可以检查哪些是动态的,哪些是静态的(静态对Jsoup是可见的),方法如下:
- 访问你想要解析的网页(如果可能的话,使用chrome浏览器,我认为mozilla也可以工作)。
- 按Ctrl + u,这将打开一个新的选项卡。
新标签将包含一些html, css和js的网格。这是服务器获取到浏览器的内容,Jsoup也可以看到它。如果模态在那里,那么很好,Jsoup可以看到它。如果没有,那么你必须使用一个库来充当无头浏览器。
无头浏览器本质上是没有图形界面的浏览器。它可以解析和执行Javascript。它能"看到"普通浏览器看到的东西。
最常用的库是selenium webdriver。注意,selenium是一个包含很多部分的测试框架。你需要的是webdriver。有很多现成代码的示例可以帮助您入门。
- 在指令控制器中使用$attrs时出现问题
- 如何使用jQuery自动打开页面上的所有链接
- 如何使用url加载程序在webpack中导入多个图像
- 如何使用jsoup发布javascript表单
- 使用 jsoup 单击时调用 JavaScript 函数
- 无法使用Jsoup从amazon或flipkart页面解析img和名称
- 如何使用jsoup检测内联js函数?我基本上想检查内联函数是否存在
- 开始使用 Android 和 JSOUP
- 使用 jsoup 时处理网页中的分页
- 如何使用jsoup Android登录后获取javascript变量
- 如何使用 jsoup 选择 html 文档的叶标签
- 如何在Java中使用Jsoup从javascript变量解析html
- 如何在有lazylod scrollLoader.js的网站中使用Jsoup
- 不能使用Jquery和Jsoup访问动态生成的元素
- 使用Jsoup解析html和javascript
- 我正在使用jsoup从网站url拉图像,但我希望页面加载第一是无论如何要做到这一点
- 登录页面,然后使用JSOUP解析html
- Web抓取模式窗口(对话框)使用jsoup
- 使用jsoup解析JavaScript
- 使用 jsoup 解析具有多列的表数据时,返回空字符串而不是第二列中的数据