Python实现可获取网易页面所有文本信息的网易网络爬虫功能示例
作者:坏蛋是我 发布时间:2023-08-21 18:51:04
标签:Python,网络爬虫
本文实例讲述了Python实现可获取网易页面所有文本信息的网易网络爬虫功能。分享给大家供大家参考,具体如下:
#coding=utf-8
#---------------------------------------
# 程序:网易爬虫
# 作者:ewang
# 日期:2016-7-6
# 语言:Python 2.7
# 功能:获取网易页面中的文本信息并保存到TXT文件中。
#---------------------------------------
import string
import urllib2
import re
import os
class WangYi_Spider:
#申明相关属性
def __init__(self):
#给wangyiUrl属性赋值
self.wangyiUrl="http://www.163.com/"
#用来保存页面中文字信息
self.pageinfor=[]
print u'已经启动网易爬虫,爬爬...'
#初始化加载页面并将其转码存储
def wangyi(self):
#读取页面的原始信息并将其从gbk转码
Page=urllib2.urlopen(self.wangyiUrl).read().decode('gbk')
#获取页面标题
title=self.find_title(Page)
print u'网页名称:'+title
#获取页面中文本信息
self.save_infor(title)
#查找页面标题
def find_title(self,page):
#匹配<title>xxxx</title>
myTitle=re.search(r'<title>(.*?)</title>',page,re.S)
#初始化标题名为暂无标题
title=u'暂无标题'
#如果标题存在把标题赋值给title
if myTitle:
#(.*?)这称作一个group,组是从1开始
title=myTitle.group(1)
else:
print u'爬虫报告:无法加载网页标题...'
return title
#保存页面信息
def save_infor(self,title):
#加载页面文本信息到数组中
self.get_infor()
#创建并打开本地文件
f=open(title+'.txt','w+')
#把获取的页面信息写入文件中
f.writelines(self.pageinfor)
#关闭打开的文件
f.close()
print u'爬虫报告:文件'+title+'.txt'+u'已经下载:'+os.getcwd()
print u'按任意键退出...'
raw_input()
#获取页面源码并将其存储到数组中
def get_infor(self):
#获取页面中的源码
page=urllib2.urlopen(self.wangyiUrl).read()
#把页面中的内容gbk解码然后获取页面中所有的文本信息
self.deal_infor(page.decode('gbk'))
#从页面代码中获取所需文信息
def deal_infor(self,page):
#获取<em >XXX</em>的文本信息XXX
emTagItems=re.findall("<em.*?>(\W+?)</em>",page,re.S)
#获取<span>XXXX</a>的文本信息XXXX
spanTagItems=re.findall("<span>(\W+?)</span>",page,re.S)
#获取<a .*>XXXX</a>的文本信息XXXX
aTagItems=re.findall("<a.*?>(\W+?)</a>",page,re.S)
#把em tag中获取的文本信息添加到数组pageinfor中
for emItem in emTagItems:
#对获取的文本信息用gbk进行编码
self.pageinfor.append(emItem.encode('gbk')+'\n')
#把span tag中获取的文本信息添加到数组pageinfor中
for spanItem in spanTagItems:
#对获取的文本信息用gbk进行编码
self.pageinfor.append(spanItem.encode('gbk')+'\n')
#把a tag中获取的文本信息添加到数组pageinfor中
for aItem in aTagItems:
#对获取的文本信息用gbk进行编码
self.pageinfor.append(aItem.encode('gbk')+'\n')
#------------程序入口处----------------
print u"""#---------------------------------------
# 程序:网易爬虫
# 作者:ewang
# 日期:2016-7-6
# 语言:Python 2.7
# 功能:获取网易页面中的文本信息并保存到TXT文件中
#--------------------------------------------------
"""
wangyiSpider=WangYi_Spider()
wangyiSpider.wangyi()
希望本文所述对大家Python程序设计有所帮助。
来源:http://blog.csdn.net/henni_719/article/details/51839504
0
投稿
猜你喜欢
- 前言图片是Word的一种特殊内容,这篇文章主要介绍了关于Python操作word文档,向里面插入图片和表格的相关内容,下面话不多说了,来一起
- 疫情数据程序源码// An highlighted blockimport requestsimport jsonclass epidemi
- 在SQL Server数据库中,如果执行Transact-SQL时出现了错误,我们可以使用两种捕捉错误的方法解决此问题,一种是在客户端代码(
- 首先,我想说下写代码的一些习惯,第一,任何可配置的参数或变量都要写到一个config文件中。第二,代码中一定要有日志记录和完善的报错并记录报
- sql server 全文检索有两种搜索方式,一种是contains,另一种是freetext。前者是包含,类似于 like '%关
- Crawler全名是DomCrawler,是Symfony框架的组件。令人发指的是DomCrawler的没有中文文档,Symfony也没有翻
- 如题,本次是要实现点击超链接实现执行js代码,并确认是否删除数据库数据,采用php。首先链接数据库,查询数据库数据:<?php$dbm
- 表单递交合法性检测-只接受数字。如下代码加入HTML的<head>区:<SCRIPT LANGUAGE=&quo
- 阅读上一篇:交互设计模式(二)-Pagination(分页,标记页数) Tagging(标签)问题摘要用户往往想通过流行或最详尽的主题来浏览
- 最近在做一个领券功能的时候,发现在一定并发下会出现重复领券的问题。使用度娘一顿搜索操作之后,发现可以使用分布式锁来解决这个问题。什么是分布式
- 常用配置以下配置能使用File -> New Projects Settings -> Settings for New Pro
- 众所周知当前(甚至接下来的几年)最酷的东西是iPhone。不仅仅是因为iPhone看起来不错,它们在网站方面也很不错。而且,更重要的是,很多
- 本文实例讲述了php mailer类调用远程SMTP服务器发送邮件实现方法。分享给大家供大家参考,具体如下:php mailer 是一款很好
- 下面的例子简单的演示了DOM对XML的操作,详细解释请看代码中的注释 <? /****************************
- 我们可用如下代码进行监控:函数中使用了fso对象来读取文件属性。Function File_GetLastModifi
- 已经下载了wampserver,以后有时间试下在本地运行ThinkPHP。在app/lib/Action/文件夹下可以为每一个模块定义控制器
- (一)深入浅出理解索引结构实际上,您可以把索引理解为一种特殊的目录。微软的SQL SERVER提供了两种索引:聚集索引(clustered
- Python是一个很酷的语言,因为你可以在很短的时间内利用很少的代码做很多事情。不仅如此,它还能轻松地支持多任务,比如多进程等。Python
- 这是解释器设置问题,在设置里找到interpreter 找到合适的目录就可以了。因为重装了python导致pycharm找不到路径了。另外,
- 本文通过问答的开式来解答在mysql在命名用过程中所遇到的常见问题。谁能连接,从那儿连接?你可以允许一个用户从特定的或一系列主机连接。有一个