简单的python 网络爬虫实现

最近拉肚子三天了,晚上单位又聚餐,一不小心吃多了点,晚上跑厕所跑的频繁,索性睡不着了,参照网上资料,敲了段python 爬虫代码,第一次学习除了shell 和js 外的脚本语言,无限的坑坑,都说python 的效率是 java 的3倍,由于是新手,跌跌撞撞总算是写了出来,还是比较欣慰的。
    简单介绍一下python :
    1、设计哲学: Python的设计哲学是“优雅”、“明确”、“简单”。因此,Perl语言中“总是有多种方法来做同一件事”的理念在Python开发者中通常是难以忍受的。Python开发者的哲学是“用一种方法,最好是只有一种方法来做一件事”。
     2、用途:(1).运维:数据挖掘。

(2).抓取网页比较多,生成报表,批量删除某种文件等等小事。。。

(3).数据采集,服务器上小工具编写
            (4).使用范围广,Linux和Windows、Mac OS等上都能用,也就是平台无关性吧

(5).很多自动化测试工具都支持Python脚本,所以才需要应聘者了解这方面

(6).整理文档,备份,监视服务器

3、常见的python web 框架 
            Django: Python Web应用开发框架
         
Flask:一个用Python编写的轻量级Web应用框架  
            Web2py:全栈式Web框架
         
Dpark:Python版的Spark
言归正传:写代码第一个坑就是缩进,最近看一些个作者的代码没有缩进简直无法忍受,要是在python中没有缩进,他能弄死你。第二个坑就是代码调试。好歹都已经解决,下面是我爬了百度贴吧nba 的一个帖子,如下:

__author__ = ‘CQC‘

# -*- coding:utf-8 -*-

#import urllib

import urllib2

import re

#处理页面标签类

class Tool:

#去除img标签,7位长空格

removeImg = re.compile(‘<img.*?>| {7}|‘)

#删除超链接标签

removeAddr = re.compile(‘<a.*?>|</a>‘)

#把换行的标签换为\n

replaceLine = re.compile(‘<tr>|<div>|</div>|</p>‘)

#将表格制表<td>替换为\t

replaceTD = re.compile(‘<td>‘)

#把段落开头换为\n加空两格

replacePara = re.compile(‘<p.*?>‘)

#将换行符或双换行符替换为\n

replaceBR = re.compile(‘<br><br>|<br>‘)

#将其余标签剔除

removeExtraTag = re.compile(‘<.*?>‘)

def replace(self, x):

x = re.sub(self.removeImg, "", x)

x = re.sub(self.removeAddr, "", x)

x = re.sub(self.replaceLine, "\n", x)

x = re.sub(self.replaceTD, "\t", x)

x = re.sub(self.replacePara, "\n    ", x)

x = re.sub(self.replaceBR, "\n", x)

x = re.sub(self.removeExtraTag, "", x)

#strip()将前后多余内容删除

return x.strip()

#百度贴吧爬虫类

class BDTB:

#初始化,传入基地址,是否只看楼主的参数

def __init__(self, baseUrl, seeLZ):

print ‘_int_ 相当于这个累的构造函数‘

self.baseURL = baseUrl

self.seeLZ = ‘?see_lz=‘ + str(seeLZ)

self.tool = Tool()

def getPage(self, pageNum):

print ‘获取百度贴吧地几页的帖子开始‘

try:

url = self.baseURL + self.seeLZ + ‘&pn=‘ + str(pageNum)

request = urllib2.Request(url)

response = urllib2.urlopen(request)

return response.read().decode(‘utf-8‘)

except urllib2.URLError, e:

if hasattr(e, "reason"):

print u"连接百度贴吧失败.错误原因", e.reason

return None

print ‘获取百度贴吧地几页的帖子结束‘

#获取帖子标题

def getTile(self):

print ‘获取帖子标题开始‘

page = self.getPage(1)

pattern = re.compile(‘<h1 class="core_title_txt.*?>(.*?)</h1>‘, re.S)

result = re.search(pattern, page)

if result:

#print result.group(1)#测试输出

return result.group(1).strip()

else:

return None

print ‘获取帖子标题结束‘

#提取帖子页数

#获取帖子一共有多少页

def getPageNum(self):

print ‘获取帖子页数一共有多少页开始‘

page = self.getPage(1)

pattern = re.compile(‘<li class="l_reply_num.*?</span>.*?<span.*?>(.*?)</span>‘, re.S)

result = re.search(pattern, page)

if result:

#print result.group(1)#测试输出

return result.group(1).strip()

else:

return None

print ‘获取帖子页数一共有多少页结束‘

def getContent(self, page):

print ‘获取正文内容开始‘

pattern = re.compile(‘<div id="post_content_.*?>(.*?)</div>‘, re.S)

items = re.findall(pattern, page)

#for item in items:

#   print item

#print items[1]

print self.tool.replace(items[1])

print ‘获取正文内容结束‘

baseURL = ‘http://tieba.baidu.com/p/3138733512

bdtb = BDTB(baseURL, 1)

bdtb.getContent(bdtb.getPage(1))

时间: 2024-11-04 12:30:13

简单的python 网络爬虫实现的相关文章

一个简单的Python网络爬虫(抓图),针对某论坛.

1 #coding:utf-8 2 import urllib2 3 import re 4 import threading 5 6 #图片下载 7 def loadImg(addr,x,y,artName): 8 data = urllib2.urlopen(addr).read() 9 f = open(artName.decode("utf-8")+str(y)+'.jpg', 'wb') 10 f.write(data) 11 f.close() 12 13 #具体帖子页面解

python网络爬虫入门(二)——用python简单实现调用谷歌翻译

最近在看国外的文档,有些生词不认识.就用谷歌翻译来理解,用着用着闲来无事就按F12查看了下页面的源代码.发现可以用python简单的实现下谷歌翻译的页面功能.于是先上网搜下有没有类似的文章博客,发现几篇不错的,于是参考其他代码与自己的思路,简单的实现了下翻译的功能,代码如下: import re import urllib,urllib2 #----------模拟浏览器的行为,向谷歌翻译发送数据,然后抓取翻译结果,这就是大概的思路------- def Gtranslate(text): #t

python网络爬虫入门(一)——简单的博客爬虫

最近,为了微信公众号的图文,上网疯狂的收集和看了一些有深度的新闻和有趣的引人深思的文字评论,并选择了几篇极品发布出去.但感觉一篇一篇的看实在是麻烦死了.想找一个简单的解决办法,看能不能自动把网上的资料收集起来,然后自己用统一筛选.不巧,最近准备学习下网络爬虫相关知识,于是按照网上的教程自己学着试写了一个小小的爬虫,嘻嘻,是用来爬韩寒博客的. 先把完整的代码贴上来,如果朋友们需要试验下,请先安装python相关环境,然后在复制粘贴保存,再按F5运行. #导入urllib库,python访问网页必须

Python网络爬虫

http://blog.csdn.net/pi9nc/article/details/9734437 一.网络爬虫的定义 网络爬虫,即Web Spider,是一个很形象的名字. 把互联网比喻成一个蜘蛛网,那么Spider就是在网上爬来爬去的蜘蛛.网络蜘蛛是通过网页的链接地址来寻找网页的. 从网站某一个页面(通常是首页)开始,读取网页的内容,找到在网页中的其它链接地址, 然后通过这些链接地址寻找下一个网页,这样一直循环下去,直到把这个网站所有的网页都抓取完为止. 如果把整个互联网当成一个网站,那么

Python]网络爬虫

Originated From: http://blog.csdn.net/pi9nc/article/details/9734437#comments [Python]网络爬虫(一):抓取网页的含义和URL基本构成 一.网络爬虫的定义 网络爬虫,即Web Spider,是一个很形象的名字. 把互联网比喻成一个蜘蛛网,那么Spider就是在网上爬来爬去的蜘蛛.网络蜘蛛是通过网页的链接地址来寻找网页的. 从网站某一个页面(通常是首页)开始,读取网页的内容,找到在网页中的其它链接地址, 然后通过这些

Python网络爬虫实战视频教程

Python网络爬虫实战教程(全套完整版) 课程观看地址:http://www.xuetuwuyou.com/course/168课程出自学途无忧网:http://www.xuetuwuyou.com 课程目录:课时1:课程介绍课时2:Python初识课时3:Python语法基础 课时4:Python控制流与小实例 课时5:答疑环节 课时6:Python函数详解 课时7:Python模块实战 课时8:Python文件操作实战 课时9:Python异常处理实战 课时10:Python面向对象编程

什么是Python网络爬虫?带你爬向顶峰

首先我们来介绍一下什么是Python网络爬虫,先大概了解一下关于Python网络爬虫的相关知识点. Python作为一门入门简单,功能强大的,库类完善的语言,身受广大猿友们的喜欢.本身对Python也是非常有好感的,所以时不时的逛逛有关Python的网站啥的.通过在各大Python学习群和论坛的学习,我发现学习Python的人大部分都对网络爬虫很感兴趣.下面给各位介绍下Python的学习流程,并且会给出对应的学习教程. 第一步--学习Python 不管你有没有编程语言基础,也不管你其他语言是多厉

python网络爬虫学习资料

第一:Python爬虫学习系列教程(来源于某博主:http://cuiqingcai.com/1052.html) Python版本:2.7 整体目录: 一.爬虫入门 1. Python爬虫入门一之综述 2. Python爬虫入门二之爬虫基础了解 3. Python爬虫入门三之Urllib库的基本使用 4. Python爬虫入门四之Urllib库的高级用法 5. Python爬虫入门五之URLError异常处理 6. Python爬虫入门六之Cookie的使用 7. Python爬虫入门七之正则

Python网络爬虫:空姐网、糗百、xxx结果图与源码

如前面所述,我们上手写了空姐网爬虫,糗百爬虫,先放一下传送门: Python网络爬虫requests.bs4爬取空姐网图片Python爬虫框架Scrapy之爬取糗事百科大量段子数据Python爬虫框架Scrapy架构和爬取糗事百科段子结果 还有Python爬虫框架Scrapy解密的文章:zzdaiy2019.cn Python爬虫框架之Scrapy详解 这几篇文章都是即时编写代码并且发布文章的,代码百分百能运行起来. 接下来,我们看一下这几个爬虫运行的结果与源码. 结果: 糗百段子数据结果 糗百