python页面抓取下载,python提取网页内容

本文目录一览:

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

解决思路:

有一个思路最为简单的思路可以动态解析页面信息。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的默认安装路径。否则可能安装失败。

官方网址:

2、SIP、PyQt4

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

下载地址是:

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

在终端中输入

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的官网找到。

下载地址:

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

这样Spynner模块就安装完成了,在python shell中试试import spynner看看该模块有没有安装完成。

Spynner的简单使用

Spynner的功能十分强大,但是由于本人能力有限,就介绍一下如何显示网页的源码吧。

#! /usr/bin/python

#-*-coding: utf-8 -*-

import spynner

browser = spynner.Browser()

#创建一个浏览器对象

browser.hide()

#打开浏览器,并隐藏。

browser.load(“”)

#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源码了。

spynner应用

下面介绍一下spynner的简单应用,通过简单的程序,可以获取你在浏览器中看到的页面的全部图片。用HTMLParser、BeautifulSoup等都可以完成HTMLParser文档的解析。而我选择HTMParser。

#!/usr/bin/python

import spynner

import HTMLParser

import os

import urllib

class MyParser(HTMLParser.HTMLParser):

def handle_starttag(self, tag, attrs):

if tag == ‘img’:

url = dict(attrs)[‘src’]

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

if name.endswith(‘.jpg’) or name.endswith(‘.png’) or name.endswith(‘gif’):

print “Download…..”, name

urllib.urlretrieve(url, name)

if __name__ == “__main__”:

browser = spynner.Browser()

browser.show()

browser.load(“”)

Parser = MyParser()

Parser.feed(browser.html)

print “Done”

browser.close()

通过这个程序,可以下载你在页面上看到的全部图片。简单的几行程序就完成了这个艰巨的任务。实现了图片的批量处理。这真是Python语言的优势,再艰巨的任务交给第三方吧。

如何用python抓取这个网页的内容?

Python实现常规的静态网页抓取时,往往是用urllib2来获取整个HTML页面,然后从HTML文件中逐字查找对应的关键字。如下所示:

复制代码代码如下:

import urllib2

url=”网址”

up=urllib2.urlopen(url)#打开目标页面,存入变量up

cont=up.read()#从up中读入该HTML文件

key1=’a href=”http’#设置关键字1

key2=”target”#设置关键字2

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

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

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

print urlx

Python使用自定义的cookie和header抓取下载网页图片

# -*- coding: UTF-8 -*-

import requests

__author__ = ‘lpe234’

def main():

    url = ”

    cookies = {

        ‘login’: ‘yes’,

        ‘cookie2’: ‘shdjd’,

        ‘cookie3’: ‘gdhjej’

    }

    headers = {

        ‘content-type’: ‘application/json’,

        ‘User-Agent’: ‘Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36’

    }

    resp = requests.get(url=url, cookies=cookies, headers=headers)

    print resp.content

if __name__ == ‘__main__’:

    main()

原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/278412.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
小蓝小蓝
上一篇 2024-12-19 13:22
下一篇 2024-12-19 13:22

相关推荐

  • 如何查看Anaconda中Python路径

    对Anaconda中Python路径即conda环境的查看进行详细的阐述。 一、使用命令行查看 1、在Windows系统中,可以使用命令提示符(cmd)或者Anaconda Pro…

    编程 2025-04-29
  • Python周杰伦代码用法介绍

    本文将从多个方面对Python周杰伦代码进行详细的阐述。 一、代码介绍 from urllib.request import urlopen from bs4 import Bea…

    编程 2025-04-29
  • Python列表中负数的个数

    Python列表是一个有序的集合,可以存储多个不同类型的元素。而负数是指小于0的整数。在Python列表中,我们想要找到负数的个数,可以通过以下几个方面进行实现。 一、使用循环遍历…

    编程 2025-04-29
  • Python计算阳历日期对应周几

    本文介绍如何通过Python计算任意阳历日期对应周几。 一、获取日期 获取日期可以通过Python内置的模块datetime实现,示例代码如下: from datetime imp…

    编程 2025-04-29
  • Python中引入上一级目录中函数

    Python中经常需要调用其他文件夹中的模块或函数,其中一个常见的操作是引入上一级目录中的函数。在此,我们将从多个角度详细解释如何在Python中引入上一级目录的函数。 一、加入环…

    编程 2025-04-29
  • Python字典去重复工具

    使用Python语言编写字典去重复工具,可帮助用户快速去重复。 一、字典去重复工具的需求 在使用Python编写程序时,我们经常需要处理数据文件,其中包含了大量的重复数据。为了方便…

    编程 2025-04-29
  • Python清华镜像下载

    Python清华镜像是一个高质量的Python开发资源镜像站,提供了Python及其相关的开发工具、框架和文档的下载服务。本文将从以下几个方面对Python清华镜像下载进行详细的阐…

    编程 2025-04-29
  • Python程序需要编译才能执行

    Python 被广泛应用于数据分析、人工智能、科学计算等领域,它的灵活性和简单易学的性质使得越来越多的人喜欢使用 Python 进行编程。然而,在 Python 中程序执行的方式不…

    编程 2025-04-29
  • 蝴蝶优化算法Python版

    蝴蝶优化算法是一种基于仿生学的优化算法,模仿自然界中的蝴蝶进行搜索。它可以应用于多个领域的优化问题,包括数学优化、工程问题、机器学习等。本文将从多个方面对蝴蝶优化算法Python版…

    编程 2025-04-29
  • python强行终止程序快捷键

    本文将从多个方面对python强行终止程序快捷键进行详细阐述,并提供相应代码示例。 一、Ctrl+C快捷键 Ctrl+C快捷键是在终端中经常用来强行终止运行的程序。当你在终端中运行…

    编程 2025-04-29

发表回复

登录后才能评论