爬取GEEKPARK最近一年活跃会员
来源:互联网 发布:淘宝与03年的非典 编辑:程序博客网 时间:2024/04/29 07:37
最简单的小爬虫,啥都没考虑直接爬,比较慢。
# -*- coding: utf-8 -*-__author__ = 'wangjingyao'from BeautifulSoup import BeautifulSoupimport urllibimport urllib2import reimport sysimport proxyIPimport user_agents,random,timeclass JKGY: def __init__(self): self.pageIndex = 210714 self.user_agent = 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.132 Safari/537.36' self.headers={'User-Agent' : self.user_agent} self.stories=[] self.errorFlag = 0 def getPage(self,pageIndex): try: url='http://www.geekpark.net/topics/'+str(pageIndex) # proxy_ip={'http':'27.24.158.155:84'} # print proxy_ip # proxy_support=urllib2.ProxyHandler(proxy_ip) # opener=urllib2.build_opener(proxy_support, urllib2.HTTPHandler(debuglevel=1)) # urllib2.install_opener(opener) # request=urllib2.Request(url) # user_agent = random.choice(user_agents.user_agents) #在user_agents中随机取一个做user_agent # print user_agent # headers={'User-Agent' : user_agent} # request.add_header('User-Agent',user_agent) #修改user-Agent字段 # request=urllib2.Request(url,headers = headers) # response=urllib2.urlopen(request) request = urllib2.Request(url,headers = self.headers) response = urllib2.urlopen(request) reload(sys) sys.setdefaultencoding('utf8') pageCode = response.read().encode('gbk','ignore') return pageCode except urllib2.URLError,e : if hasattr(e,'reason'): print u'connection error:',e.reason return None def getPageItems(self,pageIndex): pageCode=self.getPage(pageIndex) if not pageCode: print 'pageCode init error'+str(self.errorFlag) self.errorFlag +=1 return None # 作者爬取 pattern = re.compile('<span itemprop="author">(.*?)</span>') items = re.findall(pattern,pageCode) for item in items: self.stories.append(item) # 评论会员爬取 partternComment = re.compile('<div class="comment-detail"><a href=".*?">(.*?)</a>') itemcomments= re.findall(partternComment,pageCode) for itemcomment in itemcomments: if itemcomment.decode('gbk') != '极客漫游者': self.stories.append(itemcomment) def loadPage(self): if self.pageIndex <= 213394:#213394 self.getPageItems(self.pageIndex) self.pageIndex += 1 else: self.enable=False def start(self): self.enable=True while self.enable: print '---------------------' self.loadPage() # print self.stories fp =open("out.txt","w")#a是追加 self.stories=list(set(self.stories)) for i in self.stories: fp.write(i+'\t') fp.close()spiler = JKGY()spiler.start()
0 0
- 爬取GEEKPARK最近一年活跃会员
- 取所有会员最近的一条日薪记录
- 最近思绪很活跃!
- python 爬取GKGY会员多线程demo
- 最近这一年
- 小宝最近表现很活跃
- 我最近一年的奋斗目标
- 简明 python例程 (爬取 某地一年天气最高温度)
- 46.top10活跃session之分组取TopN算法获取top10活跃session
- Discuz活跃会员头像调用链接到UCHOME页面的代码
- nodejs 写爬虫爬取最近上映电影数据
- hibernate取最近一条记录
- mysql分组取最近时间
- 神童英伦取真经,一年两度惊世界
- SQL 取前一天、一月、一年的时间
- SQL 取前一天、一月、一年的时间
- SQL 取前一天、一月、一年的时间
- 如何查看用户使用情况(最近登入,活跃度。。。)
- 6 Easy Steps to Learn Naive Bayes Algorithm (with code in Python)
- mysql:Can’t create TCP/IP socket (10106)”
- 鼠标滑过弹出层
- Play Framework介绍:使用Eclipse开发和调试
- 各种类型占用字节数,以及内存分块20150908
- 爬取GEEKPARK最近一年活跃会员
- MySQL 性能调优的10个方法
- git设置HTTP代理
- C++优先级20150909
- 排序算法之选择排序
- Linux常用SIG信号及其键值
- 一张图读懂Java多线程
- 第二周【项目1】 编制三个程序,分别调用三个版本的交换函数,观察结果
- pthread_cond_signal与pthread_cond_wait