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. 如果可以的话,能否告知这个库里面与我的目标直接相关的有哪些知识?
如果有比较有帮助的一些文章,也可以贴上来呀。十分感谢!
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