全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

Python爬虫实现网页信息抓取功能示例【URL与正则模块】

本文实例讲述了Python爬虫实现网页信息抓取功能。分享给大家供大家参考,具体如下:

首先实现关于网页解析、读取等操作我们要用到以下几个模块

import urllib
import urllib2
import re

我们可以尝试一下用readline方法读某个网站,比如说百度

def test():
  f=urllib.urlopen('http://www.baidu.com')
  while True:
   firstLine=f.readline()
   print firstLine

下面我们说一下如何实现网页信息的抓取,比如说百度贴吧

我们大概要做几件事情:

首先获取网页及其代码,这里我们要实现多页,即其网址会改变,我们传递一个页数

  def getPage(self,pageNum):
     try:
        url=self.baseURL+self.seeLZ+'&pn='+str(pageNum)
        #创建request对象
        request=urllib2.Request(url)
        response=urllib2.urlopen(request)
        #print 'URL:'+url
        return response.read()
     except Exception,e:
        print e

之后我们要获取小说内容,这里咱们分为标题和正文。标题每页都有,所以我们获取一次就好了。

我们可以点击某网站,按f12查看他的标题标签是如何构造的,比如说百度贴吧是<title>…………

那我们就匹配reg=re.compile(r'<title>(.*?)。')来抓取这个信息

标题抓取完我们要开始抓去正文了,我们知道正文会有很多段,所以我们要循环的去抓取整个items,这里我们注意

对于文本的读写操作,一定要放在循环外。同时加入一些去除超链接、<br>等机制

最后,我们在主函数调用即可

完整代码:

# -*- coding:utf-8 -*-
import sys
reload(sys)
sys.setdefaultencoding('utf8')
#爬虫之网页信息抓取
#需要的函数方法:urllib,re,urllib2
import urllib
import urllib2
import re
#测试函数->读取
#def test():
#   f=urllib.urlopen('http://www.baidu.com')
#   while True:
#     firstLine=f.readline()
#     print firstLine
#针对于百度贴吧获取前十页楼主小说文本内容
class BDTB:
   def __init__(self,baseUrl,seeLZ):
     #成员变量
     self.baseURL=baseUrl
     self.seeLZ='?see_lz='+str(seeLZ)
   #获取该页帖子的代码
   def getPage(self,pageNum):
     try:
        url=self.baseURL+self.seeLZ+'&pn='+str(pageNum)
        #创建request对象
        request=urllib2.Request(url)
        response=urllib2.urlopen(request)
        #print 'URL:'+url
        return response.read()
     except Exception,e:
        print e
   #匹配标题
   def Title(self):
     html=self.getPage(1)
     #compile提高正则匹配效率
     reg=re.compile(r'<title>(.*?)。')
     #返回list列表
     items=re.findall(reg,html)
     f=open('output.txt','w+')
     item=('').join(items)
     f.write('\t\t\t\t\t'+item.encode('gbk'))
     f.close()
   #匹配正文
   def Text(self,pageNum):
     html=self.getPage(pageNum)
     #compile提高正则匹配效率
     reg=re.compile(r'"d_post_content j_d_post_content ">(.*?)</div>')
     #返回list列表
     items=re.findall(reg,html)
     f=open('output.txt','a+')
     #[1:]切片,第一个元素不需要,去掉。
     for i in items[1:]:
        #超链接去除
        removeAddr=re.compile('<a.*?>|</a>')
        #用""替换
        i=re.sub(removeAddr,"",i)
        #<br>去除
        i=i.replace('<br>','')
        f.write('\n\n'+i.encode('gbk'))
     f.close()
#调用入口
baseURL='http://tieba.baidu.com/p/4638659116'
bdtb=BDTB(baseURL,1)
print '爬虫正在启动....'.encode('gbk')
#多页
bdtb.Title()
print '抓取标题完毕!'.encode('gbk')
for i in range(1,11):
  print '正在抓取第%02d页'.encode('gbk')%i
  bdtb.Text(i)
print '抓取正文完毕!'.encode('gbk')

PS:这里再为大家提供2款非常方便的正则表达式工具供大家参考使用:

JavaScript正则表达式在线测试工具:
http://tools./regex/javascript

正则表达式在线生成工具:
http://tools./regex/create_reg

更多关于Python相关内容可查看本站专题:《Python正则表达式用法总结》、《Python数据结构与算法教程》、《Python Socket编程技巧总结》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》、《Python入门与进阶经典教程》及《Python文件与目录操作技巧汇总》

希望本文所述对大家Python程序设计有所帮助。


# Python  # 爬虫  # 网页信息  # 抓取  # URL  # 正则  # 模块  # python3正则模块re的使用方法详解  # Python3中正则模块re.compile、re.match及re.search函数用法详解  # Python 正则模块详情  # 贴吧  # 我们可以  # 正则表达式  # 超链接  # 进阶  # 操作技巧  # 多页  # 几个  # 都有  # 会有  # 放在  # 相关内容  # 第一个  # 不需要  # 每页  # 数据结构  # 要做  # 给大家  # 要用  # 更多关于 


相关文章: 建站之星如何实现网站加密操作?  已有域名和空间,如何快速搭建网站?  股票网站制作软件,网上股票怎么开户?  如何快速搭建高效香港服务器网站?  设计网站制作公司有哪些,制作网页教程?  IOS倒计时设置UIButton标题title的抖动问题  做企业网站制作流程,企业网站制作基本流程有哪些?  如何制作算命网站,怎么注册算命网站?  如何用手机制作网站和网页,手机移动端的网站能制作成中英双语的吗?  Android自定义listview布局实现上拉加载下拉刷新功能  ,如何利用word制作宣传手册?  ,南京靠谱的征婚网站?  制作充值网站的软件,做人力招聘为什么要自己交端口钱?  如何选择网络建站服务器?高效建站必看指南  制作网站的模板软件,网站怎么建设?  交易网站制作流程,我想开通一个网站,注册一个交易网址,需要那些手续?  网站制作费用多少钱,一个网站的运营,需要哪些费用?  建站之星如何防范黑客攻击与数据泄露?  如何制作公司的网站链接,公司想做一个网站,一般需要花多少钱?  家庭服务器如何搭建个人网站?  建站之星五站合一营销型网站搭建攻略,流量入口全覆盖优化指南  宝塔新建站点为何无法访问?如何排查?  如何在阿里云部署织梦网站?  中山网站制作网页,中山新生登记系统登记流程?  制作网站软件推荐手机版,如何制作属于自己的手机网站app应用?  威客平台建站流程解析:高效搭建教程与设计优化方案  如何在橙子建站上传落地页?操作指南详解  建站之星后台管理如何实现高效配置?  详解ASP.NET 生成二维码实例(采用ThoughtWorks.QRCode和QrCode.Net两种方式)  建站之星如何保障用户数据免受黑客入侵?  建站之星安装后如何自定义网站颜色与字体?  网站制作的步骤包括,正确网址格式怎么写?  活动邀请函制作网站有哪些,活动邀请函文案?  PHP正则匹配日期和时间(时间戳转换)的实例代码  建站主机是否属于云主机类型?  网站规划与制作是什么,电子商务网站系统规划的内容及步骤是什么?  官网自助建站系统:SEO优化+多语言支持,快速搭建专业网站  建站主机选购指南与交易推荐:核心配置解析  早安海报制作网站推荐大全,企业早安海报怎么每天更换?  ,怎么在广州志愿者网站注册?  如何注册花生壳免费域名并搭建个人网站?  建站主机解析:虚拟主机配置与服务器选择指南  如何用狗爹虚拟主机快速搭建网站?  沈阳个人网站制作公司,哪个网站能考到沈阳事业编招聘的信息?  建站org新手必看:2024最新搭建流程与模板选择技巧  北京建设网站制作公司,北京古代建筑博物馆预约官网?  定制建站如何定义?其核心优势是什么?  如何通过西部数码建站助手快速创建专业网站?  如何在云主机上快速搭建网站?  如何通过西部建站助手安装IIS服务器? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。