我的第一个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是一个强大的Python爬虫框架,用于高效地抓取网页数据和处理结构化信息。在Windows环境下安装Scrapy,需要确保系统已经安装了相应的依赖库和工具,这其中包括Python 2.7版本、lxml、pypOpenSSL、pywin32、VC...
在这个压缩包中,我们找到了火狐的老版本浏览器和一个专门针对XPath的插件,这对于Python开发者来说,是一个极好的工具集,可以方便地进行网页数据抓取。 首先,让我们详细了解一下火狐老版本。在某些情况下,...
看网站图片,还要翻页,不得劲,干脆直接爬过来,嗯。
在Python 2.7版本中,`lxml`仍然是许多项目依赖的重要工具,尽管Python 3已经广泛使用,但仍有部分遗留系统需要维护。 **安装lxml** 1. **依赖库**:首先确保你的系统上安装了`libxml2`和`libxslt`这两个C库。在...
例如,你可以使用lxml来解析网页,提取特定元素,然后利用XPath或CSS选择器定位目标信息。此外,lxml还可以用于生成符合规范的XML文档,便于数据交换和存储。 综上所述,Python_lxml库以其高效、强大的特性,成为...
python lxml使用文档涵盖了使用Python编程语言操作XML文件的一整套功能强大的库。此文档为美国新墨西哥理工大学官方教程,其内容既详细又易于理解,特别推荐于那些希望深入学习Python下使用lxml模块进行XML处理的...
综上所述,`lxml`是Python中处理XML和HTML的强大工具,其丰富的功能和高效性能使其在数据分析、网页抓取等领域有着广泛的应用。在实际开发中,掌握`lxml`的使用能够显著提高处理XML和HTML文档的效率。
lxml python2.7离线安装包
#### 二、Python中的XPath使用 在Python中,可以使用如`lxml`这样的库来解析HTML或XML文档,并通过XPath表达式来查询和提取所需的数据。 #### 三、XPath基本语法 1. **绝对路径**:以 `/` 开头。 - 例如:`/...
7/28暑期实践设计:requests模块+lxml模块.py
离线安装包,亲测可用
python的lxml对应的64bit或者32bit的版本
微信小程序支付demo python+flask支付宝关于XML解析存在的安全问题,所有请把xml替换成lxml合同条款微信官方XML解析存在的安全问题说明xml.etree.ElementTree说明lxml代码段from lxml import etreexmlData = etree....
富的属性和方法,使我们能够轻松地对文档...无论是在网络爬虫中解析网页,还是在数据处理中操作XML文档,lxml都能提供稳定、快速的解决方案。通过熟练掌握lxml的使用,可以极大地提升Python在XML和HTML领域的工作效率。
需要先安装Python的相关依赖:pymysql,django==3.2.8 ,requests ,selenium,requests,openpyxl,lxml 使用pip install 安装 第一步:创建数据库,数据库名:travel 第二步:执行SQL语句,打开travel.sql文件,...
Requests 和 lxml 是 Python 中常用的两个库,用于网络数据采集。Requests 库负责发起 HTTP 请求,获取网页内容,而 lxml 库则用于解析 HTML 或 XML 文档,提取所需数据。 一、Requests 库介绍 Requests 是一个简洁...
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
常用的解析工具有正则表达式、XPath、Beautiful Soup等。这些工具帮助爬虫定位和提取目标数据,如文本、图片、链接等。 数据存储: 爬虫将提取的数据存储到数据库、文件或其他存储介质中,以备后续分析或展示。常用...
爬取的时候采用selenium驱动google浏览器进行数据的抓取,抓取的网页内容传入lxml模块的etree对象HTML方法通过xpath解析DOM树,不过二手车的关键数据比如二手车价格,汽车表显里程数字采用了字体文件加密,这里我们...
### Python lxml 使用手册详解 #### 一、简介:Python与XML `lxml` 是一个强大的 Python 库,用于处理 XML 和 HTML 文件。它结合了速度快、功能丰富的 libxml2/libxslt C 库和 Python 的简单易用性。本手册将详细...