`
yuhai.china
  • 浏览: 160542 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论
阅读更多
准备工作
可以使用Python2.5,推荐使用2.4,因为需要兼顾wkfs的接口。

安装easy_install,pycurl,lxml;建议使用firefox浏览器,可以方便的使用各种调试插件。

基本知识
需要了解python中unicode的原理,以便掌握GBK和UTF-8的转换方法.

假设content是GBK编码,在python中,转换成UTF-8的方法如下:

Content=Content.decode(‘gbk’).encode(‘utf-8’)


Python中的常用集合类包括链表list=[]和字典dict={}。

3  专业技能

熟练掌握xpath,强烈推荐在信息抽取时使用xpath,这是一种基于文档结构的方法。优于使用正则表达式。正则表达式是一种字符串匹配的方法,难于维护。经常用到的xpath很少,比如抽取页面里的全部链接 “//a” 就好了,可以用它把程序写的很优雅,易于维护。Lxml是python实现的高效的xml解析工具,易于使用,示例如下:

建立DOM : dom=lxml.html.document_fromstring(content)
得到符合XPATH的元素列表:alist=dom.xpath(“//a[@id=’123’]”)
对这些元素做处理:
For a in alist:

   Do something

   需要指出的是,传入lxml.html.document_fromstring的content最好是unicode的,

   因此可以先做一个变换:content=content.decode(‘encoding’)。

   和服务器交互,推荐使用pycurl,这个部分已经封装好了,只要使用就可以了。

def get_curl(user_agent="MSIE"):
    "initialize curl handle"
    dev_null = _StringIO.StringIO()
    curl_handle = pycurl.Curl()
    curl_handle.setopt(pycurl.FOLLOWLOCATION, 1)
    curl_handle.setopt(pycurl.MAXREDIRS, 5)
    curl_handle.setopt(pycurl.CONNECTTIMEOUT, connection_timeout)
    curl_handle.setopt(pycurl.TIMEOUT, timeout)
    curl_handle.setopt(pycurl.NOSIGNAL, 1)
    curl_handle.setopt(pycurl.LOW_SPEED_LIMIT, 100)
    curl_handle.setopt(pycurl.LOW_SPEED_TIME, low_speed_time)
    curl_handle.setopt(pycurl.HTTPHEADER, ["User-Agent: %s" % "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0)", accept_type])
    curl_handle.setopt(pycurl.MAXFILESIZE, max_size)
    curl_handle.setopt(pycurl.COOKIEFILE, 'cookies.txt')
    curl_handle.setopt(pycurl.COOKIEJAR, 'cookies.txt')
    curl_handle.setopt(pycurl.WRITEFUNCTION, dev_null.write)
   
    return curl_handle


def curl_fetch(curl_handle, url):
   
    fp = _StringIO.StringIO()
    curl_handle.setopt(pycurl.URL, url)
    curl_handle.setopt(pycurl.WRITEFUNCTION, fp.write)
   
    # perform the transfer
    try:
        curl_handle.perform()
    except pycurl.error, e:
        print e
        return (-1,0,0)
    content_type = curl_handle.getinfo(pycurl.CONTENT_TYPE)
    return (curl_handle.getinfo(pycurl.HTTP_CODE),fp.getvalue(), content_type)

分享到:
评论

相关推荐

    python抓取淘宝天猫网页商品详情Demo

    在这个"python抓取淘宝天猫网页商品详情Demo"中,我们将探讨如何利用Python进行网页抓取,特别是针对淘宝和天猫的商品详情页面。 首先,我们需要理解网页抓取的基本原理。网页抓取,也称为网络爬虫,是通过模拟...

    基于python抓取豆瓣电影TOP250的数据及进行分析.pdf

    本篇文档《基于python抓取豆瓣电影TOP250的数据及进行分析.pdf》首先强调了Python语言在数据分析、数据抓取和数据清洗等领域的应用,指出Python作为一门入门简单、应用广泛的编程语言,它的数据包和框架也越来越成熟...

    Python抓取京东数据

    ### Python抓取京东数据知识点详解 #### 一、项目背景与目标 本项目旨在通过Python爬虫技术抓取京东网站的商品评论数据,并将其存储至MySQL数据库中,方便后续的数据分析和挖掘工作。该项目重点关注京东图书商品的...

    python抓取高德POI数据,突破数据量限制

    本文将深入探讨如何利用Python抓取高德地图的POI数据,并解决数据量限制的问题。通过提供的文件`GetAmapPOIbyPolygon.py`,我们可以看到一个Python脚本,它用于获取高德地图在特定区域内的POI数据。 首先,`...

    python 抓取1688店铺产品详情爬虫

    python 抓取1688店铺产品详情,爬虫

    Python 抓取图片(源码)

    Python 抓取百度贴吧里边的图片内容

    python 抓取百度云分享数据,百度云最新接口抓取分享链接

    在这个主题中,我们将探讨如何使用Python来抓取百度云分享的数据,特别是利用百度云最新的API接口。这通常涉及到请求、解析HTML或JSON响应、处理验证码以及可能的反爬策略。 首先,要抓取百度云分享的数据,我们...

    基于python抓取微博数据并对微博文本分析和可视化项目源码-LDA(树图)含文档说明

    基于python抓取微博数据并对微博文本分析和可视化项目源码-LDA(树图)含文档说明,含有代码注释,新手也可看懂,个人手打98分项目,导师非常认可的高分项目,毕业设计、期末大作业和课程设计高分必看,下载下来,...

    python抓取数据包提取五元组

    抓取数据包:使用Python中的网络抓包库(如Scapy、pcapy、dpkt等),可以监听网络接口或读取存储在文件中的网络数据包。这些库提供了函数和方法来捕获和读取数据包。 解析数据包:对于每个捕获到的数据包,需要对其...

    python抓取淘宝天猫网页商品详情Demo.zip

    本项目"python抓取淘宝天猫网页商品详情Demo.zip"是一个利用Python进行网络数据抓取的示例,主要涉及到以下几个核心知识点: 1. **网络请求库**:在Python中,我们通常使用如`requests`库来发送HTTP请求,获取网页...

    python抓取免费代理IP

    1. **Python抓取免费代理IP** `get_ips.py` 文件很可能是用于从网络上抓取免费代理IP的脚本。通常,这些IP可以从公开的代理服务器列表网站、API接口或者论坛等地方获取。Python中可以使用requests库进行HTTP请求,...

    python抓取百度搜索的数据

    ### Python抓取百度搜索的数据 在本篇教程中,我们将详细介绍如何使用Python抓取百度搜索引擎返回的结果数据。此过程涉及到网络爬虫的基本概念和技术,包括HTTP请求、正则表达式匹配以及网页内容解析等。 #### ...

    python抓取网页上想要的任何数据.txt

    本文将介绍如何使用Python抓取网页数据并解析。 1. Python抓取网页数据的基本流程 首先,我们需要明确一下Python抓取网页数据的基本流程。通常情况下,我们需要完成以下三个步骤: (1)发送HTTP请求获取网页数据...

    python抓取网页图片

    以上就是Python抓取网页图片的核心知识点。在实际应用中,可能还需要考虑其他因素,比如反爬策略、多线程/异步处理提高效率、图片质量优化等。在`reptile`这个文件或项目中,很可能包含了实现这些功能的代码。通过...

    python抓取网页图片.zip

    在Python编程语言中,"python抓取网页图片.zip"这个压缩包文件可能包含了一个示例项目,教我们如何使用Python来抓取网络上的图片。在Web抓取领域,这通常涉及到网络爬虫的编写,目的是自动下载网页中的图像资源。...

    Web-Scraping-with-Python_Python网页信息抓取_Python抓取网页_jupyter_Python抓

    在提供的压缩包中,你将找到一个名为“Web-Scraping-with-Python_Python网页信息抓取_Python抓取网页_jupyter_Python抓取_源码”的项目,包含了上述过程的源代码示例。通过研究这些代码,你可以深入理解web scraping...

    使用Selenium 和 Python 抓取快手网页大量评论.py

    使用Selenium和Python抓取快手网页上的大量评论是一项非常实用的技术,特别适用于需要分析和处理大量用户评论的场景。通过这项技术,用户可以自动化地从快手网页上提取评论数据,并将其保存到本地文件中,以便后续的...

    python抓取网站全部书目信息.rar

    标题“python抓取网站全部书目信息.rar”指的是一个使用Python编程语言进行网络爬虫开发的项目,目标是抓取图书馆网站上的所有图书信息。这个项目可能涉及到的主要知识点包括: 1. **Python基础**:Python作为一门...

Global site tag (gtag.js) - Google Analytics