Python爬取动态生成的网页(框架)需要具备哪些知识或者使用哪些库?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python爬取动态生成的网页(框架)需要具备哪些知识或者使用哪些库?相关的知识,希望对你有一定的参考价值。

我想用Python做一个结构大致为”歌手-歌曲名-专辑名-歌曲时长“的数据库,搜索许多网页,发现QQ音乐会显示歌曲时长,比如,许巍的所有单曲:http://y.qq.com/#type=singer&id=3376

但是QQ音乐貌似是用的是某javascript框架(我对这块儿了解很少),所以无法通过直接读取网页源码的方式进行获取。另外,即使使用Chrome显示的”框架源代码“,也无法获取当前页面所有的歌曲的长度(我的环境下框架源代码中显示的只有12首,而不是整个页面显示的30+首)。

题主对于BeautifulSoup以及Python内置的相关库有初步了解,但是scrape动态网页的经验没有。我通过搜索,知道有一个Ghost.py,但是貌似仍然无法满足我的需求。

希望有类似经验的朋友能指点一下:为了完成这个目标,1. 我需要了解哪些方面的知识?(比如,这个任务对JS要求高吗?题主只看过Mozilla上的一个指南)2. 需要使用哪些外部的库 3. 如果可以的话,能否告知这个库里面与我的目标直接相关的有哪些知识?

如果有比较有帮助的一些文章,也可以贴上来呀。十分感谢!

  1、抓取网页,模拟登陆等背后的通用的逻辑和原理;
  2、以提取songtaste网页中标题为例,详解如何抓取网站并提取网页内容;
  3、以模拟登陆百度为例,详解如何模拟登陆网站;
  4、以抓取网易博客帖子中的最近读者信息为例,详解如何抓取动态网页中的内容;
  5、详解了在模拟登陆和抓取动态网页过程中,如何用对应的网页分析工具,如IE9的F12,Chrome的Ctrl+Shift+J,Firefox的Firebug,去分析出对应的逻辑;
  6、针对抓取网站,模拟登陆,抓取动态网页,全部给出了完整的可用的,多种语言的示例代码:Python,C#,Java,Go等。
参考技术A 对于动态生成(前端JS后继运算加载)的页面,只看html源代码是没有用的,需要由webkit等浏览器引擎执行过js代码之后,才能使页面完全展现出来.
可以通过直接使用浏览器内核输出页面的方式来得到最终代码.
我使用的是phantomjs来得到最终页面代码.
参考技术B 需要网页编程基础,懂一些简单的ajax,需要会一种网页抓包调试工具。在Mozilla里有一个firebug。

如果有人教你,几天。我遇到一个人,教了她一个星期也没有弄会。

自己摸索有些难。可能也需要一个星期左右时间。本回答被提问者采纳
参考技术C 哦, 现在很多网站用了ajax,会动态的加载页面内容。你可以使用python模仿每次动态加载的请求就可以了。 参考技术D 弱弱的问一下楼主有没有什么进展,我也在爬瀑布流网站,可以交流下经验吗?

如何用python爬取js动态生成内容的页面

抓取js动态生成的内容的页面有两种基本的解决方案

1用dryscrape库动态抓取页面
js脚本是通过浏览器来执行并返回信息的,所以,抓取js执行后的页面,一个最直接的方式就是用python模拟浏览器的行为。WebKit 是一个开源的浏览器引擎,python提供了许多库可以调用这个引擎,dryscrape便是其中之一,它调用webkit引擎来处理包含js等的网页!

2 selenium web测试框架

selenium是一个web测试框架,它允许调用本地的浏览器引擎发送网页请求,所以,它同样可以实现抓取页面的要求。
参考技术A python 2.6 + selenium-2.53.6 + firefox45.0 + BeautifulSoup3.2.1
或者
python 2.6 + selenium-2.53.6 + phantomjs 2.1.1本回答被提问者采纳

以上是关于Python爬取动态生成的网页(框架)需要具备哪些知识或者使用哪些库?的主要内容,如果未能解决你的问题,请参考以下文章

动态网页实战| python爬虫+前端框架Bootstrap

js的网页爬虫爬不到吗

如何用python+selenium+phantomjs获得一个网页的动态生成的html代码

python动态爬取网页

怎么爬取网页的动态内容,很多都是js动态生

Python入门,以及简单爬取网页文本内容