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

本文通过Python示例代码展示了如何从指定网站抓取标题及电话号码等信息,利用urllib2请求网页,结合xpath解析HTML并使用正则表达式提取电话号码。

爱帮网单个网址:http://www.aibang.com/detail/17881112-420243957

截图:

QQ截图20120609171133

本文采集该页面的标题和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编码,这样才能够输出

转载于:https://www.cnblogs.com/crazyant/archive/2012/06/09/2823858.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值