网络爬虫速成指南(二)网页解析(基于模板)
2013-08-15 10:58
357 查看
网页解析技术: 1 xpath教程 2 正则表达式教程 xpath是将html加载为DOM树解析,简单,易维护。 通常我用正则作为辅助抽取,用xpath定位后,再从定位的数据中用正则抽取。 xpath的类库: .net 方向主要用到HtmlAgilityPack java 方向主要用到HtmlCleaner(得FQ) jsoup 以下是本人封装好的:HtmlParser 使用示例:
HtmlParser<HotelInfo> parser = new HtmlParser<HotelInfo>(); ParseConfig config = new ParseConfig("save_xc.xml"); String html = File.ReadAllText("xiecheng.txt", Encoding.GetEncoding("GBK")); HotelInfo entity = parser.GetEntity(html, config);
模板样例1:
<?xml version="1.0" encoding="utf-8"?>
<template>
<page>
<save root=".">
<field>
<name>Title</name>
<xpath>//div[@id='J_Article_Wrap']//h1</xpath>
</field>
<field>
<name>PubTime</name>
<xpath>//*[@id='pub_date']</xpath>
<regex>
<pattern>(\d+)年(\d+)月(\d+)日</pattern>
<format>{0}-{1}-{2}</format>
</regex>
</field>
<field>
<name>Article</name>
<xpath>//*[@id="artibody"]</xpath>
</field>
</save>
</page>
</template>
模板样例2:
<?xml version="1.0" encoding="utf-8"?>
<template>
<page>
<save_m root="//tr[@id]">
<field>
<name>Price</name>
<xpath>./td[@class='price']</xpath>
</field>
</save_m>
</page>
</template>
模板样例3:
<?xml version="1.0" encoding="utf-8"?>
<template>
<page>
<save root=".">
<field>
<name>Name</name>
<xpath>//h1</xpath>
</field>
<field>
<name>EngName</name>
<xpath>//div[@class='name']/h2</xpath>
</field>
<field>
<name>Star</name>
<xpath>//div[@class='grade']/span/@title</xpath>
</field>
<field>
<name>Address</name>
<xpath>//div[@class='adress']</xpath>
</field>
<field>
<name>Description</name>
<xpath>//*[@id="htlDes"]</xpath>
</field>
<field>
<name>Facility</name>
<xpath position='outerhtml'>//div[@class="htl_info_table "]</xpath>
</field>
<field>
<name>Policy</name>
<xpath position='outerhtml'>//div[@class='detail_main']/div[@class="htl_info_table"]</xpath>
</field>
<field>
<name>Traffic</name>
<xpath position='outerhtml'>//div[@class='transSub'][1]/div[@class="htl_info_table"]</xpath>
</field>
<field>
<name>Nearby</name>
<xpath position='outerhtml'>//div[@class='transSub'][2]/div[@class="htl_info_table"]</xpath>
</field>
</save>
</page>
</template>
相关文章推荐
- 网络爬虫速成指南(二)网页解析(基于算法)
- 网络爬虫速成指南(一)网页下载
- 基于htmlparser实现网页内容解析 (主题爬虫)
- 网络爬虫速成指南 (四) URL判重
- 简单网络爬虫应用,解析网页,实现定时通知、提示
- 一只简单的网络爬虫(基于linux C/C++)————Url处理以及使用libevent进行DNS解析
- 网络爬虫_网页登录(苏宁 有验证码)—基于HtmlUnit
- 一只简单的网络爬虫(基于linux C/C++)————利用正则表达式解析页面
- 网络爬虫框架的搭建以及使用HttpClient抓取解析网页的详细步骤
- Java网络爬虫crawler4j学习笔记<20> 网页内容转码解析
- 基于BeautifulSoup解析的网页爬虫实现
- 网络爬虫初步:从访问网页到数据解析
- 网络爬虫初步:从访问网页到数据解析
- 网络爬虫初步:从訪问网页到数据解析
- 网络爬虫速成指南 (三) 编码识别
- 基于Nutch+Hadoop+Hbase+ElasticSearch的网络爬虫及搜索引擎
- [置顶] 基于java的网络爬虫框架(实现京东数据的爬取,并将插入数据库)
- 天气实时显示系统--基于python网络爬虫的树莓派与Arduino蓝牙通信
- 用python写网络爬虫-下载网页
- 一个简单的网络爬虫---爬取网页中的图片