js 爬虫抓取网页数据

js 爬虫抓取网页数据

js 爬虫抓取网页数据( 源码中JS是如何加载6%的数据的(组图) )

网站优化优采云 发表了文章 • 0 个评论 • 188 次浏览 • 2021-09-11 05:11 • 来自相关话题

  js 爬虫抓取网页数据(
源码中JS是如何加载6%的数据的(组图)
)
  网站爬取JS加载数据,无法获取最终显示在网页上的数据
  
  在网页上输入url,网页上显示的数据是0%,但是当鼠标向下滑动页面时,数据开始加载,从0%开始变化,最后停在6%。当我爬取这个数据的时候,实际得到的还是0%
  稍后继续查看页面源码
  发现源码的js标签内容中有这么短的一段
  收录网页内容的元素标签
  
  如何通过python获取页面6%
  整个JS加载的逻辑
  30.00%
  另外查了下一个网页的源码,稍微看了一下JS部分
  因为对JS完全不熟悉,所以在刚才的JS代码中看到了网页内容对应的html元素标签名:class=numnber05
  我理解如下,JS如何加载源代码中6%的数据
  
> 1. 定义初始值
var numberInitial = {
scor1: 0,
scor2: 0
}
2. 创建JS函数
TweenLite.to(numberInitial , .5, {
score2: 6, # 对score2 重新赋值
onUpdate: function () {
showScore([$("#number05")], ['score2']) # 这段代码自己猜的意思应该是 将 socre2重新赋值后的数据,赋值给绑定的对应的html元素标签class="number05"的内容里
}
} 查看全部

  js 爬虫抓取网页数据(
源码中JS是如何加载6%的数据的(组图)
)
  网站爬取JS加载数据,无法获取最终显示在网页上的数据
  
  在网页上输入url,网页上显示的数据是0%,但是当鼠标向下滑动页面时,数据开始加载,从0%开始变化,最后停在6%。当我爬取这个数据的时候,实际得到的还是0%
  稍后继续查看页面源码
  发现源码的js标签内容中有这么短的一段
  收录网页内容的元素标签
  
  如何通过python获取页面6%
  整个JS加载的逻辑
  30.00%
  另外查了下一个网页的源码,稍微看了一下JS部分
  因为对JS完全不熟悉,所以在刚才的JS代码中看到了网页内容对应的html元素标签名:class=numnber05
  我理解如下,JS如何加载源代码中6%的数据
  
> 1. 定义初始值
var numberInitial = {
scor1: 0,
scor2: 0
}
2. 创建JS函数
TweenLite.to(numberInitial , .5, {
score2: 6, # 对score2 重新赋值
onUpdate: function () {
showScore([$("#number05")], ['score2']) # 这段代码自己猜的意思应该是 将 socre2重新赋值后的数据,赋值给绑定的对应的html元素标签class="number05"的内容里
}
}

js 爬虫抓取网页数据(什么是HTML源码中的JS动态生成?(一))

网站优化优采云 发表了文章 • 0 个评论 • 124 次浏览 • 2021-09-11 05:10 • 来自相关话题

  js 爬虫抓取网页数据(什么是HTML源码中的JS动态生成?(一))
  我们之前抓取的网页大多是 HTML 静态生成的内容。您可以直接从 HTML 源代码中找到您看到的数据和内容。然而,并不是所有的网页都是这样。
  部分网站内容是前端JS动态生成的。由于网页呈现的内容是由JS生成的,我们可以在浏览器上看到,但在HTML源代码中是找不到的。例如,今天的头条新闻:
  浏览器渲染的网页如下图所示:
  
  查看源码,却是如下图:
  
  网页上的新闻在HTML源代码中找不到,都是JS动态生成和加载的。
  在这种情况下,我们应该如何抓取网页?有两种方式:
  从网页响应中查找JS脚本返回的JSON数据;
  使用 Selenium 模拟访问网页
  这里只介绍第一种方法。关于Selenium的使用有专门的文章。
  一、从网页响应中查找JS脚本返回的JSON数据
  即使网页内容是由JS动态生成和加载的,JS也需要调用一个接口,根据接口返回的JSON数据进行加载和渲染。
  这样我们就可以找到JS调用的数据接口,从数据接口中找到网页最后呈现的数据。
  以今日头条为例说明:
  1、找到JS请求的数据接口
  F12 打开网页调试工具
  
  网页调试工具
  选择“网络”标签后,我们发现有很多回复。让我们过滤它们,只查看 XHR 响应。 (XHR 是 Ajax 中的一个概念,意思是 XMLHTTPrequest)
  然后我们发现很多链接都没有了,随便点一个看看:
  我们选择city,预览中有一串json数据:
  
  让我们再次点击它:
  
  原来都是城市列表,应该用来加载地区新闻。
  现在你应该明白如何找到JS请求的接口了吧?但是刚才没有找到想要的消息,所以再找一下:
  有个焦点,我们点一下看看:
  
  首页图片新闻呈现的数据是一样的,所以数据应该是有的。
  查看其他链接:
  
  这应该是热搜关键词
  
  
  返回一串乱码,但从响应中查看的是正常编码的数据:
  有了对应的数据接口,我们就可以模仿前面的方法向数据接口请求并得到响应
  2、请求并解析数据接口数据
  先上传完整代码:
  # 编码:utf-8
  导入请求
  导入json
  url ='#39;
  wbdata = requests.get(url).text
  data = json.loads(wbdata)
  news = data['data']['pc_feed_focus']
  对于新闻中的 n:
  title = n['title']
  img_url = n['image_url']
  url = n['media_url']
  打印(网址,标题,img_url)
  返回结果如下:
  
  像往常一样,稍微解释一下代码:
  代码分为四部分,
  第 1 部分:导入相关库
  # 编码:utf-8
  导入请求
  导入json
  第 2 部分:向数据接口发出 http 请求
  url ='#39;
  wbdata = requests.get(url).text 查看全部

  js 爬虫抓取网页数据(什么是HTML源码中的JS动态生成?(一))
  我们之前抓取的网页大多是 HTML 静态生成的内容。您可以直接从 HTML 源代码中找到您看到的数据和内容。然而,并不是所有的网页都是这样。
  部分网站内容是前端JS动态生成的。由于网页呈现的内容是由JS生成的,我们可以在浏览器上看到,但在HTML源代码中是找不到的。例如,今天的头条新闻:
  浏览器渲染的网页如下图所示:
  
  查看源码,却是如下图:
  
  网页上的新闻在HTML源代码中找不到,都是JS动态生成和加载的。
  在这种情况下,我们应该如何抓取网页?有两种方式:
  从网页响应中查找JS脚本返回的JSON数据;
  使用 Selenium 模拟访问网页
  这里只介绍第一种方法。关于Selenium的使用有专门的文章。
  一、从网页响应中查找JS脚本返回的JSON数据
  即使网页内容是由JS动态生成和加载的,JS也需要调用一个接口,根据接口返回的JSON数据进行加载和渲染。
  这样我们就可以找到JS调用的数据接口,从数据接口中找到网页最后呈现的数据。
  以今日头条为例说明:
  1、找到JS请求的数据接口
  F12 打开网页调试工具
  
  网页调试工具
  选择“网络”标签后,我们发现有很多回复。让我们过滤它们,只查看 XHR 响应。 (XHR 是 Ajax 中的一个概念,意思是 XMLHTTPrequest)
  然后我们发现很多链接都没有了,随便点一个看看:
  我们选择city,预览中有一串json数据:
  
  让我们再次点击它:
  
  原来都是城市列表,应该用来加载地区新闻。
  现在你应该明白如何找到JS请求的接口了吧?但是刚才没有找到想要的消息,所以再找一下:
  有个焦点,我们点一下看看:
  
  首页图片新闻呈现的数据是一样的,所以数据应该是有的。
  查看其他链接:
  
  这应该是热搜关键词
  
  
  返回一串乱码,但从响应中查看的是正常编码的数据:
  有了对应的数据接口,我们就可以模仿前面的方法向数据接口请求并得到响应
  2、请求并解析数据接口数据
  先上传完整代码:
  # 编码:utf-8
  导入请求
  导入json
  url ='#39;
  wbdata = requests.get(url).text
  data = json.loads(wbdata)
  news = data['data']['pc_feed_focus']
  对于新闻中的 n:
  title = n['title']
  img_url = n['image_url']
  url = n['media_url']
  打印(网址,标题,img_url)
  返回结果如下:
  
  像往常一样,稍微解释一下代码:
  代码分为四部分,
  第 1 部分:导入相关库
  # 编码:utf-8
  导入请求
  导入json
  第 2 部分:向数据接口发出 http 请求
  url ='#39;
  wbdata = requests.get(url).text

js 爬虫抓取网页数据( 源码中JS是如何加载6%的数据的(组图) )

网站优化优采云 发表了文章 • 0 个评论 • 188 次浏览 • 2021-09-11 05:11 • 来自相关话题

  js 爬虫抓取网页数据(
源码中JS是如何加载6%的数据的(组图)
)
  网站爬取JS加载数据,无法获取最终显示在网页上的数据
  
  在网页上输入url,网页上显示的数据是0%,但是当鼠标向下滑动页面时,数据开始加载,从0%开始变化,最后停在6%。当我爬取这个数据的时候,实际得到的还是0%
  稍后继续查看页面源码
  发现源码的js标签内容中有这么短的一段
  收录网页内容的元素标签
  
  如何通过python获取页面6%
  整个JS加载的逻辑
  30.00%
  另外查了下一个网页的源码,稍微看了一下JS部分
  因为对JS完全不熟悉,所以在刚才的JS代码中看到了网页内容对应的html元素标签名:class=numnber05
  我理解如下,JS如何加载源代码中6%的数据
  
> 1. 定义初始值
var numberInitial = {
scor1: 0,
scor2: 0
}
2. 创建JS函数
TweenLite.to(numberInitial , .5, {
score2: 6, # 对score2 重新赋值
onUpdate: function () {
showScore([$("#number05")], ['score2']) # 这段代码自己猜的意思应该是 将 socre2重新赋值后的数据,赋值给绑定的对应的html元素标签class="number05"的内容里
}
} 查看全部

  js 爬虫抓取网页数据(
源码中JS是如何加载6%的数据的(组图)
)
  网站爬取JS加载数据,无法获取最终显示在网页上的数据
  
  在网页上输入url,网页上显示的数据是0%,但是当鼠标向下滑动页面时,数据开始加载,从0%开始变化,最后停在6%。当我爬取这个数据的时候,实际得到的还是0%
  稍后继续查看页面源码
  发现源码的js标签内容中有这么短的一段
  收录网页内容的元素标签
  
  如何通过python获取页面6%
  整个JS加载的逻辑
  30.00%
  另外查了下一个网页的源码,稍微看了一下JS部分
  因为对JS完全不熟悉,所以在刚才的JS代码中看到了网页内容对应的html元素标签名:class=numnber05
  我理解如下,JS如何加载源代码中6%的数据
  
> 1. 定义初始值
var numberInitial = {
scor1: 0,
scor2: 0
}
2. 创建JS函数
TweenLite.to(numberInitial , .5, {
score2: 6, # 对score2 重新赋值
onUpdate: function () {
showScore([$("#number05")], ['score2']) # 这段代码自己猜的意思应该是 将 socre2重新赋值后的数据,赋值给绑定的对应的html元素标签class="number05"的内容里
}
}

js 爬虫抓取网页数据(什么是HTML源码中的JS动态生成?(一))

网站优化优采云 发表了文章 • 0 个评论 • 124 次浏览 • 2021-09-11 05:10 • 来自相关话题

  js 爬虫抓取网页数据(什么是HTML源码中的JS动态生成?(一))
  我们之前抓取的网页大多是 HTML 静态生成的内容。您可以直接从 HTML 源代码中找到您看到的数据和内容。然而,并不是所有的网页都是这样。
  部分网站内容是前端JS动态生成的。由于网页呈现的内容是由JS生成的,我们可以在浏览器上看到,但在HTML源代码中是找不到的。例如,今天的头条新闻:
  浏览器渲染的网页如下图所示:
  
  查看源码,却是如下图:
  
  网页上的新闻在HTML源代码中找不到,都是JS动态生成和加载的。
  在这种情况下,我们应该如何抓取网页?有两种方式:
  从网页响应中查找JS脚本返回的JSON数据;
  使用 Selenium 模拟访问网页
  这里只介绍第一种方法。关于Selenium的使用有专门的文章。
  一、从网页响应中查找JS脚本返回的JSON数据
  即使网页内容是由JS动态生成和加载的,JS也需要调用一个接口,根据接口返回的JSON数据进行加载和渲染。
  这样我们就可以找到JS调用的数据接口,从数据接口中找到网页最后呈现的数据。
  以今日头条为例说明:
  1、找到JS请求的数据接口
  F12 打开网页调试工具
  
  网页调试工具
  选择“网络”标签后,我们发现有很多回复。让我们过滤它们,只查看 XHR 响应。 (XHR 是 Ajax 中的一个概念,意思是 XMLHTTPrequest)
  然后我们发现很多链接都没有了,随便点一个看看:
  我们选择city,预览中有一串json数据:
  
  让我们再次点击它:
  
  原来都是城市列表,应该用来加载地区新闻。
  现在你应该明白如何找到JS请求的接口了吧?但是刚才没有找到想要的消息,所以再找一下:
  有个焦点,我们点一下看看:
  
  首页图片新闻呈现的数据是一样的,所以数据应该是有的。
  查看其他链接:
  
  这应该是热搜关键词
  
  
  返回一串乱码,但从响应中查看的是正常编码的数据:
  有了对应的数据接口,我们就可以模仿前面的方法向数据接口请求并得到响应
  2、请求并解析数据接口数据
  先上传完整代码:
  # 编码:utf-8
  导入请求
  导入json
  url ='#39;
  wbdata = requests.get(url).text
  data = json.loads(wbdata)
  news = data['data']['pc_feed_focus']
  对于新闻中的 n:
  title = n['title']
  img_url = n['image_url']
  url = n['media_url']
  打印(网址,标题,img_url)
  返回结果如下:
  
  像往常一样,稍微解释一下代码:
  代码分为四部分,
  第 1 部分:导入相关库
  # 编码:utf-8
  导入请求
  导入json
  第 2 部分:向数据接口发出 http 请求
  url ='#39;
  wbdata = requests.get(url).text 查看全部

  js 爬虫抓取网页数据(什么是HTML源码中的JS动态生成?(一))
  我们之前抓取的网页大多是 HTML 静态生成的内容。您可以直接从 HTML 源代码中找到您看到的数据和内容。然而,并不是所有的网页都是这样。
  部分网站内容是前端JS动态生成的。由于网页呈现的内容是由JS生成的,我们可以在浏览器上看到,但在HTML源代码中是找不到的。例如,今天的头条新闻:
  浏览器渲染的网页如下图所示:
  
  查看源码,却是如下图:
  
  网页上的新闻在HTML源代码中找不到,都是JS动态生成和加载的。
  在这种情况下,我们应该如何抓取网页?有两种方式:
  从网页响应中查找JS脚本返回的JSON数据;
  使用 Selenium 模拟访问网页
  这里只介绍第一种方法。关于Selenium的使用有专门的文章。
  一、从网页响应中查找JS脚本返回的JSON数据
  即使网页内容是由JS动态生成和加载的,JS也需要调用一个接口,根据接口返回的JSON数据进行加载和渲染。
  这样我们就可以找到JS调用的数据接口,从数据接口中找到网页最后呈现的数据。
  以今日头条为例说明:
  1、找到JS请求的数据接口
  F12 打开网页调试工具
  
  网页调试工具
  选择“网络”标签后,我们发现有很多回复。让我们过滤它们,只查看 XHR 响应。 (XHR 是 Ajax 中的一个概念,意思是 XMLHTTPrequest)
  然后我们发现很多链接都没有了,随便点一个看看:
  我们选择city,预览中有一串json数据:
  
  让我们再次点击它:
  
  原来都是城市列表,应该用来加载地区新闻。
  现在你应该明白如何找到JS请求的接口了吧?但是刚才没有找到想要的消息,所以再找一下:
  有个焦点,我们点一下看看:
  
  首页图片新闻呈现的数据是一样的,所以数据应该是有的。
  查看其他链接:
  
  这应该是热搜关键词
  
  
  返回一串乱码,但从响应中查看的是正常编码的数据:
  有了对应的数据接口,我们就可以模仿前面的方法向数据接口请求并得到响应
  2、请求并解析数据接口数据
  先上传完整代码:
  # 编码:utf-8
  导入请求
  导入json
  url ='#39;
  wbdata = requests.get(url).text
  data = json.loads(wbdata)
  news = data['data']['pc_feed_focus']
  对于新闻中的 n:
  title = n['title']
  img_url = n['image_url']
  url = n['media_url']
  打印(网址,标题,img_url)
  返回结果如下:
  
  像往常一样,稍微解释一下代码:
  代码分为四部分,
  第 1 部分:导入相关库
  # 编码:utf-8
  导入请求
  导入json
  第 2 部分:向数据接口发出 http 请求
  url ='#39;
  wbdata = requests.get(url).text

官方客服QQ群

微信人工客服

QQ人工客服


线