htmlunit抓取动态网页(网站的爬虫调试的时候发现问题(一)(组图))

优采云 发布时间: 2022-03-30 02:04

  htmlunit抓取动态网页(网站的爬虫调试的时候发现问题(一)(组图))

  网站的爬虫脚本在调试时发现问题:

  脚本运行:content-type用text/xml可以发帖成功,但是post中body的内容不生效,所有回复都是当前日期;有申请,发帖不成功(即没有返回数据)

  工具发:content-type用text/xml可以发帖成功,但是post中body的内容不生效,所有回复都是当前日期;有申请,发帖成功,正文中日期修改有效

  即用型脚本完全没有接收到返回的数据,但是很奇怪可以使用工具fiddler或者Burpsuite来正常查看包的内容。直到后来才发现我爬的网站是动态的==

  动态网页(参考百度百科:%E5%8A%A8%E6%80%81%E7%BD%91%E9%A1%B5/6327050)

  -------------------------------------------------- ------------------

  所谓动态网页,是指相对于静态网页的一种网页编程技术。对于静态网页,随着html代码的生成,页面的内容和显示效果基本不会改变——除非你修改了页面代码。动态网页并非如此。虽然页面代码没有改变,但是显示的内容会随着时间、环境或数据库操作的结果而改变。

  值得强调的是,动态网页不应与页面内容是否动态相混淆。这里所说的动态网页与网页上的各种*敏*感*词*、滚动字幕等视觉动态效果没有直接关系。动态网页也可以是纯文本内容或收录各种*敏*感*词*内容。这些只是特定于网页。内容的呈现形式,无论网页是否具有动态效果,只要是通过动态网站技术生成的,都可以称为动态网页。

  总之,动态网页是基本的html语法规范与Java、VB、VC等高级编程语言、数据库编程等技术的融合,以实现网站@的高效、动态、交互的内容和风格。 > 管理。因此,从这个意义上说,任何由网页编程技术结合HTML以外的高级编程语言和数据库技术生成的网页都是动态网页。

  -------------------------------------------------- ------------------

  也可以解释为动态网页不执行javascript,仅使用data=response.read()获取的静态html没有要爬取的内容

  网上用Python解决这个问题只有两种方法:采集内容直接来自JavaScript代码,或者使用Python的第三方库运行JavaScript,直接采集浏览器中看到的页。我用selenium做web自动化,我用的是第二种(其实selenium+PhantomJS就是模拟浏览器访问url,然后把动态网页的所有内容转换成静态html返回,所以速度会很慢)

  安装PhantomJS:下载第三方库,放到python\scripts下

  爬虫网易播放列表中,播放量过千万的歌名和链接保存到excel

  Chrome按F12查看网页源代码

  检查页面上的元素,首先将frame切换为id='g_iframe'

  播放量nb及对应的标题和链接

  mysongList1000.xls 结果截图

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线