`
xsong512
  • 浏览: 35275 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

python + lxml 抓取网页 ,不需用正则,用xpath

阅读更多
我的第一个python入门程序:
python + lxml 抓取网页 ,不需用正则,用xpath

# -*- coding:gb2312 -*-
import urllib
import hashlib
import os
class Spider:
    '''crawler html'''
    def get_html(self,url):
        sock = urllib.urlopen(url)
        htmlSource = sock.read()
        sock.close()
        return htmlSource
    def cache_html(self,filename,htmlSource):
        f = open(filename,'w')
        f.write(htmlSource)
        f.close
    def analysis_html(self,htmlSource):
        #from lxml import etree
        import lxml.html.soupparser as soupparser
        dom = soupparser.fromstring(htmlSource)
        #doc = dom.parse(dom)
        r = dom.xpath(".//*[@id='lh']/a[2]")
        print len(r)
        print r[0].tag
        '''
        这里直接输出中文print r[0].text 会报错,所以用了encode('gb2312')
并且在文件头部声明了文件编码类型
参考:http://blogold.chinaunix.net/u2/60332/showart_2109290.html
        '''
        print r[0].text.encode('gb2312')
        print 'done'
    def get_cache_html(self,filename):
        if not os.path.isfile(filename):
            return ''
        f = open(filename,'r')
        content = f.read()
        f.close()
        return content
if __name__ == '__main__':
    spider = Spider()
    url = 'http://www.baidu.com'
    md5_str = hashlib.md5(url).hexdigest()
    filename = "html-"+md5_str+".html"
    htmlSource = spider.get_cache_html(filename);
    if not htmlSource:
        htmlSource = spider.get_html(url)
        spider.cache_html(filename,htmlSource)
    spider.analysis_html(htmlSource)



程序流程:
抓取页面:get_html
保存页面:cache_html
分析页面:analysis_html

辅助方法:get_cache_html,如果已经抓取过的页面,保存为本地文件,下一次直接从本地文件取html内容,不用再次通过网络抓取

xpath分析工具:firefox插件,firepath



lxml 学习参考:http://lxml.de/index.html
  • 大小: 49.1 KB
分享到:
评论

相关推荐

    安装Scrapy需要的python2.7+lxml+puOpenSSL+pywin32+VCForPython+get-pip

    Scrapy是一个强大的Python爬虫框架,用于高效地抓取网页数据和处理结构化信息。在Windows环境下安装Scrapy,需要确保系统已经安装了相应的依赖库和工具,这其中包括Python 2.7版本、lxml、pypOpenSSL、pywin32、VC...

    火狐老版本+xpath插件(适合python+xpath爬虫使用)

    在这个压缩包中,我们找到了火狐的老版本浏览器和一个专门针对XPath的插件,这对于Python开发者来说,是一个极好的工具集,可以方便地进行网页数据抓取。 首先,让我们详细了解一下火狐老版本。在某些情况下,...

    python3 +lxmL+requests+pycharm组件 爬取图片 建议使用pyCharm编辑器

    看网站图片,还要翻页,不得劲,干脆直接爬过来,嗯。

    python2.7下lxml库下载安装以及代码示例

    在Python 2.7版本中,`lxml`仍然是许多项目依赖的重要工具,尽管Python 3已经广泛使用,但仍有部分遗留系统需要维护。 **安装lxml** 1. **依赖库**:首先确保你的系统上安装了`libxml2`和`libxslt`这两个C库。在...

    python_lxml

    例如,你可以使用lxml来解析网页,提取特定元素,然后利用XPath或CSS选择器定位目标信息。此外,lxml还可以用于生成符合规范的XML文档,便于数据交换和存储。 综上所述,Python_lxml库以其高效、强大的特性,成为...

    python lxml使用文档

    python lxml使用文档涵盖了使用Python编程语言操作XML文件的一整套功能强大的库。此文档为美国新墨西哥理工大学官方教程,其内容既详细又易于理解,特别推荐于那些希望深入学习Python下使用lxml模块进行XML处理的...

    python lxml3.8.0 源包

    综上所述,`lxml`是Python中处理XML和HTML的强大工具,其丰富的功能和高效性能使其在数据分析、网页抓取等领域有着广泛的应用。在实际开发中,掌握`lxml`的使用能够显著提高处理XML和HTML文档的效率。

    lxml python2.7离线安装包

    lxml python2.7离线安装包

    (完整版)python+xpath笔记.docx

    #### 二、Python中的XPath使用 在Python中,可以使用如`lxml`这样的库来解析HTML或XML文档,并通过XPath表达式来查询和提取所需的数据。 #### 三、XPath基本语法 1. **绝对路径**:以 `/` 开头。 - 例如:`/...

    7/28暑期实践设计:requests模块+lxml模块.py

    7/28暑期实践设计:requests模块+lxml模块.py

    python-lxml-3.2.1-4.el7.x86_64.rpm

    离线安装包,亲测可用

    python的lxml对应的64bit或者32bit的版本

    python的lxml对应的64bit或者32bit的版本

    微信小程序支付demo python+flask.zip

    微信小程序支付demo python+flask支付宝关于XML解析存在的安全问题,所有请把xml替换成lxml合同条款微信官方XML解析存在的安全问题说明xml.etree.ElementTree说明lxml代码段from lxml import etreexmlData = etree....

    python教程lxml详解

    富的属性和方法,使我们能够轻松地对文档...无论是在网络爬虫中解析网页,还是在数据处理中操作XML文档,lxml都能提供稳定、快速的解决方案。通过熟练掌握lxml的使用,可以极大地提升Python在XML和HTML领域的工作效率。

    基于python+django的旅游城市关键词分析的实现.zip

    需要先安装Python的相关依赖:pymysql,django==3.2.8 ,requests ,selenium,requests,openpyxl,lxml 使用pip install 安装 第一步:创建数据库,数据库名:travel 第二步:执行SQL语句,打开travel.sql文件,...

    Requests+lxml数据采集

    Requests 和 lxml 是 Python 中常用的两个库,用于网络数据采集。Requests 库负责发起 HTTP 请求,获取网页内容,而 lxml 库则用于解析 HTML 或 XML 文档,提取所需数据。 一、Requests 库介绍 Requests 是一个简洁...

    python之lxml安装包

    lxml-3.4.4-cp27-none-win_amd64.whl 适用于python27 适用于win8.1 64bit 不可用于win10 64bit 先安装pip install wheel 再执行:pip install lxml-3.4.4-cp27-none-win_amd64.whl

    requests+lxml爬虫,简单爬虫架构.zip

    常用的解析工具有正则表达式、XPath、Beautiful Soup等。这些工具帮助爬虫定位和提取目标数据,如文本、图片、链接等。 数据存储: 爬虫将提取的数据存储到数据库、文件或其他存储介质中,以备后续分析或展示。常用...

    毕业设计,基于Python+Django+MySql开发的二手车爬虫数据可视化分析,内含Python完整源代码,数据库脚本

    爬取的时候采用selenium驱动google浏览器进行数据的抓取,抓取的网页内容传入lxml模块的etree对象HTML方法通过xpath解析DOM树,不过二手车的关键数据比如二手车价格,汽车表显里程数字采用了字体文件加密,这里我们...

    python lxml使用了手册

    ### Python lxml 使用手册详解 #### 一、简介:Python与XML `lxml` 是一个强大的 Python 库,用于处理 XML 和 HTML 文件。它结合了速度快、功能丰富的 libxml2/libxslt C 库和 Python 的简单易用性。本手册将详细...

Global site tag (gtag.js) - Google Analytics