您的位置:首页 > 其它

数据采集简单示例:采集爱帮网电话号码

2012-06-09 17:15 302 查看
爱帮网单个网址:http://www.aibang.com/detail/17881112-420243957

截图:





本文采集该页面的标题和2个电话号码,具体的python代码:

# -*- coding: UTF-8 -*-
'''
Created on 2012-6-9
@author: crazyant
'''

#导入urllib2库,用于获取网页
import urllib2

#使用开源库Webscraping库的xpath模块
from Webscraping import xpath,common

#首先,发送请求到爱帮网的一个页面,该页面含有地址
req = urllib2.Request('http://www.aibang.com/detail/17881112-420243957')

#获得响应
reponse = urllib2.urlopen(req)

#将响应的内容存入html变量
html = reponse.read()

#以下抓取页面的标题
title = xpath.search(html, '//div[@class="ppc_title"]/h1[1]')

print '标题:'
#这里要输出中文,因此采用common的to_unicode输出
print common.to_unicode(title[0], 'utf-8')

#使用xpath得到电话号码的节点
tel = xpath.search(html, '//dl[@class="detail_list"]/dd[@class="fb"]')

#使用正则拆分数字
import re
m = re.search(r'([\d-]+)\s([\d-]+)', tel[0])
#如果匹配,输出两个单个电话号码
print '电话号:'
if m is not None:
for t in m.groups():
print t
运行结果:

标题:
坊上人清真饭庄(高新店)
电话号:
029-88222668
029-88226458


其中主要用到了以下模块:

xpath:用于使用路径的方法找到节点

re:正则表达式模块,用于拆分电话号码(其实字符串函数也可以)

urllib2:用于请求指定URL的页面内容,存于字符串然后分析

Webscraping 库的common模块:用于将获取到得中文文本转成unicode编码,这样才能够输出
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: