动态网页抓取(如何用Java获取Javascript动态生成的html内容?(图))
优采云 发布时间: 2022-01-22 09:07动态网页抓取(如何用Java获取Javascript动态生成的html内容?(图))
首先明确我所说的动态数据是什么意思。
术语定义:这里的动态数据是指网页中通过Javascript动态生成的页面内容,即不在网页的源文件中,而是在页面加载到浏览器后动态生成的。
输入下面的主题。
抓取一个静态页面非常简单,通过Java获取html源代码,然后分析源代码得到想要的信息。比如要在中国天气网获取杭州的天气,只需要找到对应的html页面()即可。
假设我需要输入城市名称来获取变更后城市的天气,而数据源仍然来自中国天气网。首先要做的是根据城市找到对应的页面。通过简单分析,发现城市对应页面的URL,比如杭州对应101210101,所以程序的关键是找到城市和页面的对应关系。
发现网站的搜索框有国内大部分城市的链接,可以得到city和_id的对应关系。找到突破口并开始采取行动。进入首页,查看其源码,找到搜索框的位置。
(图1捕获_1.JPG)
原来数据是通过Javascript动态添加的,通过Chrome的inspect元素可以看到如下内容。
(图2捕获_2.JPG)
现在可以做的就是用Chrome将html复制到一个文件中,然后解析该文件得到城市和URL的关系。问题是如果城市和网站的URL的对应关系发生变化,很被动,需要改程序。
现在的问题是如何获取Java中Javascript动态生成的html内容。