我的第一个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
看网站图片,还要翻页,不得劲,干脆直接爬过来,嗯。
Requests+lxml数据采集,采集单页面,多页面数据,存储到mysql,mongo数据中
python_lxml
7/28暑期实践设计:requests模块+lxml模块.py
python的lxml对应的64bit或者32bit的版本
离线安装包,亲测可用
需要先安装Python的相关依赖:pymysql,django==3.2.8 ,requests ,selenium,requests,openpyxl,lxml 使用pip install 安装 第一步:创建数据库,数据库名:travel 第二步:执行SQL语句,打开travel.sql文件,...
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等。这些工具帮助爬虫定位和提取目标数据,如文本、图片、链接等。 数据存储: 爬虫将提取的数据存储到数据库、文件或其他存储介质中,以备后续分析或展示。常用...
python 的lxml文件,install wheel后使用。。。。。。。。
其中数据的爬取是通过python调用selenium驱动Chrome浏览器实现网页内容的抓取! 启动爬虫celery进程:python manage.py celery worker 注意:celery框架里面有个方法和python3.7的关键字冲突,所以用python3.6吧!...
爬取的时候采用selenium驱动google浏览器进行数据的抓取,抓取的网页内容传入lxml模块的etree对象HTML方法通过xpath解析DOM树,不过二手车的关键数据比如二手车价格,汽车表显里程数字采用了字体文件加密,这里我们...
安装方法: pip install lxml-4.3.0-cp36-cp36m-win_amd64.whl
lxml, python的lxml工具箱 什么是 lxml?lxml是在 python 语言中处理XML和HTML的最丰富的特性和easy-to-use库。 它也非常快和记忆友好,只是你知道。有关介绍和进一步的文档,请参见文档/主。txt文档。有关安装信息...
主要介绍了Python基于lxml模块解析html获取页面内所有叶子节点xpath路径功能,结合实例形式较为详细的分析了Python使用lxml模块进行xml节点数据解析的相关操作技巧与注意事项,需要的朋友可以参考下
lxml python2.7离线安装包
安装方法: pip install lxml-4.2.6-cp27-cp27m-win_amd64.whl
其中数据的爬取是通过python调用selenium驱动Chrome浏览器实现网页内容的抓取! 启动爬虫celery进程:python manage.py celery worker 注意:celery框架里面有个方法和python3.7的关键字冲突,所以用python3.6吧!...