Pyhton入门 笔记 第五天 实战:原生爬虫
2018-07-18 01:15:41来源:博客园 阅读 ()
from urllib import request
class Spider():
url='https://www.panda.tv/cate/lol' #目录地址
def __fetch__content(self): #定义私有方法,要取得页面内容
r=request.urlopen(Spider.url) #通过request.urlopen()函数得到
htmls=r.read() #再通过read()读取出来 现在是数字类型
htmls=str(htmls,encoding='utf-8') #进行字符转化 得到内容
def go(self): # 类入口
self.__fetch__content()
spider=Spider()
spider.go()
二,
''' This is mob ''' import re from urllib import request ''' This is class ''' class Spider(): url='https://www.panda.tv/cate/hearthstone?pdt=1.c_lol.psbar-ca1.2.2g65c8rk97k' root_pattern='<div class="video-info">([\s\S]*?)</div>' # This is variable name_pattern='</i>([\s\S]*?)</span>' # variable number_pattern='<span class="video-number">([\s\S]*?)</span>' def __fetch__content(self): #取得页面内容 r=request.urlopen(Spider.url) htmls=r.read() htmls=str(htmls,encoding='utf-8') return htmls def __analysis(self,htmls): #把取得的内容组合成序列 root_html=re.findall(Spider.root_pattern,htmls) anchors=[] #接收序列内容 for html in root_html: name=re.findall(Spider.name_pattern,html) number=re.findall(Spider.number_pattern,html) anchor={'name':name,'number':number} #把取出来的内容放入字典 anchors.append(anchor) #再把字典放入序列 # print(anchors[0]) # return anchors def __refine(self,anchors): #把取出来的内容再精加工,去空格,回车等 l=lambda anchor:{'name':anchor['name'][0].strip(),'number':anchor['number'][0]} #strip()函数去空格 return map(l,anchors) #去除后,重新组合 def __sort(self,anchors): #对抓取的内容进行排序按number anchors=sorted(anchors,key=self.__sort_seed,reverse=True) #sorted()函数排序 return anchors def __sort_seed(self,anchor): #对number的精计算,因为取得了的number为字符类,要转化成数字类型进行排序 r=re.findall('\d*',anchor['number']) #提取number中的数字 number=float(r[0]) #转成浮点型,因为带小数点 if '万' in anchor['number']: #把number中带万的进行数字转化 number*=10000 return number def __show(self,anchors): #最终显示效果 for rank in range(0,len(anchors)): #打印出序列号 rank print('rank' + str(rank+1) + ':'+anchors[rank]['name'] +' '+':'+anchors[rank]['number']) def go(self): htmls=self.__fetch__content() anchors=self.__analysis(htmls) anchors=list(self.__refine(anchors)) anchors=self.__sort(anchors) self.__show(anchors) # print(anchors) spider=Spider() spider.go()
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇:pythonday11
- 小白如何入门 Python 爬虫? 2019-08-13
- Python之装饰器笔记 2019-08-13
- Python之对象持久化笔记 2019-08-13
- Python单元测试笔记 2019-08-13
- 编程小白的第一本python入门书(高清版)PDF下载 2019-07-24
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash