抓取动态网页(Python中有一个.urlopen(url)#iOS#39;)

优采云 发布时间: 2022-03-29 00:17

  抓取动态网页(Python中有一个.urlopen(url)#iOS#39;)

  up=urllib2.urlopen(url)#打开目标页面并存储在变量up中

  cont=up.read()#从上往下读取HTML文件

  key1='key2="target"#set 关键字 2

  pa=cont.find(key1)#查找关键字1的位置

  pt=cont.find(key2,pa)#查找关键字2的位置(从单词1的后面开始)

  urlx=cont[pa:pt]#获取关键字1和关键字2之间的内容(即想要的数据)

  打印网址

  但是,在动态页面中,显示的内容往往不是通过HTML页面呈现,而是通过调用js等方法从数据库中获取数据并回显到网页中。以国家发改委网站上的“备案信息”( )为例,抓取该页面的部分备案项目。例如“”。

  然后,在浏览器中打开此页面:

  相关信息显示的很全,但是如果按照之前的方法:

  复制代码代码如下:

  up=urllib2.urlopen(url)

  cont=up.read()

  很久以前,在学习Python web 编程的时候,涉及到一个Python urllib。您可以使用 urllib.urlopen("url").read() 轻松读取页面上的静态信息。但是随着时代的发展,越来越多的网页使用javascript、jQuery、PHP等语言来动态生成页面信息。因此,使用urllib抓取页面的html是不够的,无法达到我们想要的效果。

  解决方案:

  有一个简单的思路,可以动态解析页面信息。 urllib 无法解析动态信息,但浏览器可以。浏览器上显示的处理后的信息实际上就是处理后的 HTML 文档。这为我们抓取动态页面信息提供了一个好思路。 Python中有一个著名的图形库——PyQt。虽然 PyQt 是一个图形库,但它里面有 QtWebkit。这是非常实用的。 Google 的 Chrome 和 Apple 的 Safari 都是基于 WebKit 内核开发的,所以我们可以在 PyQt 中通过 QtWebKit 读取页面中的信息并将其加载到 HTML 文档中,然后解析 HTML 文档,从HTML 文档。信息。

  作者自己使用的是 Mac OS X。同样的方法应该也适用于 Windows 和 Linux 平台。

  1、Qt4 库

  图书馆,而不是创作者。库在Mac的默认安装路径下,应该是/home/username/Developor/,不要更改Qt4的默认安装路径。否则可能会导致安装失败。

  官方网址:

  2、SIP,PyQt4

  这两个软件都可以在PyQt的官网上找到。下载是它的源代码。 Mac和Linux需要自己编译。

  下载地址为:

  在终端切换到解压文件的目录。

  在终端输入

  python 配置.py

  制作

  sudo 安装

  安装和编译。

  SIP 和 PyQt4 的安装方式相同。但是 PyQt4 依赖于 SIP。所以先安装SIP,再安装PyQt4

  1、2 两步完成后,安装Python PyQt4模块。在 Python shell 中输入 import PyQt4 以查看是否可以找到 PyQt4 模块。

  3、斯宾纳

  spynner 是一个 QtWebKit 客户端,它模拟浏览器并完成加载页面、引发事件和填写表单等操作。

  这个模块可以在Python官网找到。

  下载:

  解压后cd到安装目录,然后输入sudo python configure.py install安装模块。

  Spynner 模块现已安装,在 python shell 中尝试 import spynner 看看是否安装了该模块。

  回到顶部

  Spynner 的简单使用

  Spynner的功能很强大,但是由于我的能力有限,我会介绍如何显示网页的源代码。

  #!/usr/bin/python

  #-*-编码:utf-8 -*-

  导入 spynner

  浏览器 = spynner.Browser()

  #创建浏览器对象

  browser.hide()

  #打开浏览器并隐藏。

  browser.load("")

  #browser类中有一个类方法load,可以使用webkit来加载你要加载的页面信息。

  #load(是你要加载的URL的字符串形式)

  打印 browser.html.encode("utf-8")

  #browser类的一个成员是html,它是页面经过处理后的源代码字符串。

  #转码为UTF-8编码

  open("Test.html", 'w+').write(browser.html.encode("utf-8"))

  #也可以写入文件,用浏览器打开。

  browser.close()

  #关闭这个浏览器

  通过这个程序,可以更方便的展示webkit处理的页面的HTML源代码。

  回到顶部

  spynner 应用

  下面介绍spynner的简单应用。通过一个简单的程序,你就可以得到你在浏览器中看到的页面的所有图片。 HTMLParser 文档解析可以用 HTMLParser、BeautifulSoup 等,我选择 HTMParser。

  #!/usr/bin/python

  导入 spynner

  导入 HTMLParser

  导入操作系统

  导入 urllib

  类 MyParser(HTMLParser.HTMLParser):

  def handle_starttag(self, tag, attrs):

  如果标签 == 'img':

  url = dict(attrs)['src']

  name = os.path.basename(dict(attrs)['src'])

  如果 name.endswith('.jpg') 或 name.endswith('.png') 或 name.endswith('gif'):

  打印“下载.....”,名称

  urllib.urlretrieve(url, name)

  如果 __name__ == "__main__":

  浏览器 = spynner.Browser()

  browser.show()

  browser.load("")

  解析器 = MyParser()

  Parser.feed(browser.html)

  打印“完成”

  browser.close()

  通过这个程序,您可以下载您在页面上看到的所有图片。几行简单的程序就可以完成这项艰巨的任务。实现了图像的批处理。这确实是Python语言的优势,然后把繁重的任务交给第三方。

  解决方案:

  有一个简单的思路,可以动态解析页面信息。 urllib 无法解析动态信息,但浏览器可以。浏览器上显示的处理后的信息其实就是处理后的HTML文本

  文件。这为我们抓取动态页面信息提供了一个好思路。 Python中有一个著名的图形库——PyQt。 PyQt虽然是一个图形库,但是在里面

  QtWebkit。这是非常实用的。谷歌的Chrome和苹果的Safari都是基于WebKit内核开发的,所以我们可以通过PyQt获取QtWebKit

  读取页面中的信息并将其加载到 HTML 文档中,然后解析 HTML 文档,从 HTML 文档中提取我们要使用的信息。

  所需材料:

  作者自己使用的是 Mac OS X。同样的方法应该也适用于 Windows 和 Linux 平台。

  1、Qt4 库

  图书馆,而不是创作者。库在Mac的默认安装路径下,应该是/home/username/Developor/,不要更改Qt4的默认安装路径。否则可能会导致安装失败。

  官方网址:

  2、SIP,PyQt4

  这两个软件都可以在PyQt的官网上找到。下载是它的源代码。 Mac和Linux需要自己编译。

  下载地址为:

  在终端切换到解压文件的目录。

  在终端输入

  python 配置.py

  制作

  sudo 安装

  安装和编译。

  SIP 和 PyQt4 的安装方式相同。但是 PyQt4 依赖于 SIP。所以先安装SIP,再安装PyQt4

  1、2 两步完成后,安装Python PyQt4模块。在 Python shell 中输入 import PyQt4 以查看是否可以找到 PyQt4 模块。

  3、斯宾纳

  spynner 是一个 QtWebKit 客户端,它模拟浏览器并完成加载页面、引发事件和填写表单等操作。

  这个模块可以在Python官网找到。

  下载:

  解压后cd到安装目录,然后输入sudo python configure.py install安装模块。

  Spynner 模块现已安装,在 python shell 中尝试 import spynner 看看是否安装了该模块。

  Spynner 的简单使用

  Spynner的功能很强大,但是由于我的能力有限,我会介绍如何显示网页的源代码。

  #!/usr/bin/python

  #-*-编码:utf-8 -*-

  导入 spynner

  浏览器 = spynner.Browser()

  #创建浏览器对象

  browser.hide()

  #打开浏览器并隐藏。

  browser.load("")

  #browser类中有一个类方法load,可以使用webkit来加载你要加载的页面信息。

  #load(是你要加载的URL的字符串形式)

  打印 browser.html.encode("utf-8")

  #browser类的一个成员是html,它是页面经过处理后的源代码字符串。

  #转码为UTF-8编码

  open("Test.html", 'w+').write(browser.html.encode("utf-8"))

  #也可以写入文件,用浏览器打开。

  browser.close()

  #关闭这个浏览器

  通过这个程序,可以更方便的展示webkit处理的页面的HTML源代码。

  spynner 应用

  下面介绍spynner的简单应用。通过一个简单的程序,你就可以得到你在浏览器中看到的页面的所有图片。 HTMLParser 文档解析可以用 HTMLParser、BeautifulSoup 等,我选择 HTMParser。

  #!/usr/bin/python

  导入 spynner

  导入 HTMLParser

  导入操作系统

  导入 urllib

  类 MyParser(HTMLParser.HTMLParser):

  def handle_starttag(self, tag, attrs):

  如果标签 == 'img':

  url = dict(attrs)['src']

  name = os.path.basename(dict(attrs)['src'])

  如果 name.endswith('.jpg') 或 name.endswith('.png') 或 name.endswith('gif'):

  打印“下载.....”,名称

  urllib.urlretrieve(url, name)

  如果 __name__ == "__main__":

  浏览器 = spynner.Browser()

  browser.show()

  browser.load("")

  解析器 = MyParser()

  Parser.feed(browser.html)

  打印“完成”

  browser.close()

  通过这个程序,您可以下载您在页面上看到的所有图片。几行简单的程序就可以完成这项艰巨的任务。实现了图像的批处理。这确实是Python语言的优势,然后把繁重的任务交给第三方。

  如何使用Python爬取动态页面信息————Python爬取动态页面和静态页面基本相同。不同的是,一些动态页面对请求头有限制(如cookie\user agent)或ip限制。如果你要抓取的动态页面没有这些限制,那么你可以使用和抓取静态页面一样的方法,例如:import urllib2 url = "xxxxxx" print urllib2.urlopen(url)。读取()

  python如何抓取动态页面内容? - —— 1.先了解网页爬取的逻辑流程,请参考:【整理】关于爬取网页,分析网页内容,模拟登陆网站逻辑/流程及注意事项2.@ >复用工具分析所需内容是如何生成的【总结】浏览器中的开发者工具(IE9用F12,Chrome用Ctrl+Shift+I)——网页分析你也可以用火狐的firebug作为利器,但是我用过,感觉不如IE9的F12好用。 3.我分析了一下,发现是哪个url生成了你需要的数据,然后就是用python实现对应的代码了。

  如何使用Python爬取动态页面信息——selenium webdriverFirefox()implicitly_wait(3)查看网页请求一般会在获取数据时请求其他地址,也可以获取信息。你的问题太笼统了, 这是唯一的答案

  如何使用Python来捕获动态页面信息——本文讲一下捕获动态页面数据的相关工具和库:1. python 2.7 2. pyqt < @3. spynner(安装过程中还会自动从网上下载安装其他一些依赖库)4.BeautifulSoup5.ide工具是pycharm(当然这只是个人偏好,也可以使用其他 IDE)工具)来...

  如何使用Python抓取动态页面信息—— 1、使用模拟浏览器 2、找到对应的ajax url,提交ajax请求,如果是js动态加载的,可以使用pyV8第三方包解析js

  python3如何爬取动态加载的网页信息——方法一在页面中查找xhr请求,获取实际请求参数。直接获取相关搜索的请求返回码,然后组织数据。方法2模拟浏览器操作,比如使用Selenium模块。

  如何使用Python抓取动态页面信息——很久以前,在学习Python网页编程的时候,涉及到一个Python urllib。用 urllib.urlopen("url").read() 可以轻松读取页面上的静态信息。但是随着时代的发展,越来越多的网页使用javascript、jQuery、PHP等语言来动态生成页面信息。所以……

  如何使用Python爬取动态页面信息——Spynner的简单使用 Spynner的功能很强大,但是由于我的能力有限,先介绍一下如何展示网页的源代码。 #! /usr/bin/python #- *-coding: utf-8 -*- import spynner browser = spynner.Browser() #创建浏览器对象 browser.hide() #打开浏览器...

  如何使用Python抓取动态页面信息——1.自己分析ajax2.使用python控制webkit,无界面浏览器,或者selenuim技术直接获取解析加载的html

  p>

  如何使用Python抓取动态页面信息——很久以前,在学习Python网页编程的时候,涉及到一个Python urllib。用 urllib.urlopen("url").read() 可以轻松读取页面上的静态信息。但是随着时代的发展,越来越多的网页使用javascript、jQuery、PHP等语言来动态生成页面信息。所以……

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线