问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

如何用Python抓取动态页面信息

发布网友 发布时间:2022-04-22 04:31

我来回答

1个回答

热心网友 时间:2022-04-18 08:18

  很早之前,学习Python web编程的时候,就涉及一个Python的urllib。可以用urllib.urlopen("url").read()可以轻松读取页面上面的静态信息。但是,随着时代的发展,也来越多的网页中更多的使用javascript、jQuery、PHP等语言动态生成页面信息。因此,用urllib再去抓取页面HTML就不足以达到我们想要的效果。
  回到顶部
  解决思路:

  有一个思路最为简单的思路可以动态解析页面信息。urllib不可以解析动态信息,但是浏览器可以。在浏览器上展现处理的信息其实是处理好的HTML文档。这为我们抓取动态页面信息提供了很好的思路。在Python中有一个很有名的图形库——PyQt。PyQt虽然是图形库,但是他里面 QtWebkit。这个很实用。谷歌的Chrome和苹果的Safari都是基于WebKit内核开发的,所以我们可以通过PyQt中得QtWebKit 把页面中的信息读取加载到HTML文档中,再解析HTML文档,从HTML文档中提取我们想用得信息。
  回到顶部
  所需材料:
  作者本人实用Mac OS X。应该在Windows和Linux平台也可以采用相同的办法。
  1、Qt4 library
  Library,而不是Creator。Library在Mac的默认安装路径下,应该是/home/username/Developor/,不要改变Qt4的默认安装路径。否则可能安装失败。
  官方网址:http://qt-project.org/downloads
  
  2、SIP、PyQt4
  这两个软件可以在在PyQt的官网找到。下载的是它的源码。Mac和Linux需要自己编译。
  下载地址是:http://www.riverbankcomputing.co.uk/software/pyqt/download
  在终端切换到文件解压后的目录中。
  在终端中输入
  python configure.py
  make
  sudo make install
  进行安装编译。
  SIP和PyQt4两个安装方法相同。但是PyQt4依赖SIP。所以先安装SIP再安装PyQt4
  
  1、2两步完成之后,Python的PyQt4的模块就安装好了。在Python shell中输入import PyQt4看看能不能找到PyQt4的模块。
  
  3、Spynner
  spynner是一个QtWebKit的客户端,它可以模拟浏览器,完成加载页面、引发事件、填写表单等操作。
  这个模块可以在Python的官网找到。
  下载地址: https://pypi.python.org/pypi/spynner/2.5
  解压后,cd到安装目录,然后输入sudo python configure.py install安装该模块。
  这样Spynner模块就安装完成了,在python shell中试试import spynner看看该模块有没有安装完成。
  
  回到顶部
  Spynner的简单使用
  Spynner的功能十分强大,但是由于本人能力有限,就介绍一下如何显示网页的源码吧。
  ?

  1
  2
  3
  4
  5
  6
  7
  8
  9
  10
  11
  12
  13
  14
  15
  16
  17
  18
  19
  20
  21
  22
  23
  24
  
  #! /usr/bin/python
  #-*-coding: utf-8 -*-
  
  import spynner
  
  browser = spynner.Browser()
  #创建一个浏览器对象
  
  browser.hide()
  #打开浏览器,并隐藏。
  
  browser.load("http://www.baidu.com")
  #browser 类中有一个类方法load,可以用webkit加载你想加载的页面信息。
  #load(是你想要加载的网址的字符串形式)
  
  print browser.html.encode("utf-8")
  #browser 类中有一个成员是html,是页面进过处理后的源码的字符串.
  #将其转码为UTF-8编码
  
  open("Test.html", 'w+').write(browser.html.encode("utf-8"))
  #你也可以将它写到文件中,用浏览器打开。
  
  browser.close()
  #关闭该浏览器
  

  通过这个程序,就可以比较容易的显示webkit处理的页面HTML源码了。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
女生多大后可以不在长身高? 如何不用软件把手机投屏到电脑上手机屏幕怎样投放到电脑上 战时拒绝、故意延误军事订货罪既遂的处罚? 战时故意延误军事订货罪处罚标准 名师1+1导读方案:汤姆·索亚历险记目录 三星sm-g7200打开微信慢,无法正常收看,网速不慢。 笔记本电脑如何调亮屏幕亮度 大伙说说洗衣机要不要带烘干好 热烘干洗衣机怎么样 ef英语哪个好 成都理工大学怎样? 求村上春树作品集 黄渤的假装情侣沈露骑在黄渤肩上是的音乐是什么歌名 软件如何实现网页信息数据抓取 成都理工大学地球科学学院的介绍 求《村上春树三册合集》全文免费下载百度网盘资源,... 按键精灵如何做到提取网页的内容? 假装情侣现在哪个电影院播 成都理工大学,西南科技大学,西华大学哪个更好 村上春树的散文集有那些 我想问可不可以在网页数据抓取页面信息(数字,文字... 假装情侣所有插曲 成都理工大学和重庆理工大学哪个更好 易语言获取指定网页信息 假装情侣插曲 成都理工大学怎么样? 获取网页内容的几种方法 电影 假装情侣 播放到36分钟时黄渤和四个女生看球... 如何评价成都理工大学? 没有色彩的多崎作和他的巡礼之年的作品目录 电影 假装情侣 片头2分41秒开始播放的插曲叫什么?... 如何自动获取网页信息填入excel 成都理工大学管理科学学院的介绍 在jsp页面中如何获取另一个jsp页面提交的信息 如何提取整个网页的全部内容 成都理工大学的计算机科学与技术专业怎么样?&nbsp... 怎么获取网页上的内容? 成都理工大学是一本还是二本 js如何实现点击图片跳转页面获取页面的信息 成都理工大学优势专业 成都理工大学和西南科技大学哪个好 java获取访问页面的信息 易语言如何获取网页信息? 成都理工大学材料科学与工程怎么样? 如何从 WEB 页面中提取信息 成都理工大学位于哪里 如何获取网页内容 如何用程序自动登录网站并获取指定页面的信息 我的QQ输入群号后面没有显示搜索 qq怎么加群怎么搜索不了