爬取虎牙直播分类页面的主播的头像,名字,人气

今天学习了python3爬虫,上课闲着无聊,自己写了一个爬虫

就顺着老师思路

爬了虎牙直播分类页面的主播,头像,名字,和人气

HuYaCateScrapy.py

  1. #!/usr/bin/python
  2. # -*- coding: utf-8 -*-
  3.  
  4. """
  5. @ author: happy_code
  6. @ contact: happy_code@foxmail.com
  7. @ software: 爬虫
  8. @ desc: 获取虎牙直播类页面主播名和人气,下载头像,并以名字和人气命名
  9. """
  10.  
  11. import urllib
  12. import requests
  13. import re
  14. import os
  15.  
  16. class Spider:
  17.  
  18. # 目标url
  19. url = ""
  20.  
  21. # 保存地址
  22. myrobot = "D:/scinfo/"
  23.  
  24. # 获取的主播名和人气,头像
  25. part = '<span class="txt">\s*' \
  26. '\s*<span class="avatar fl">\s*' \
  27. '\s*<img.*data-original="(.*?)".*>\s*' \
  28. '\s*<i.*>(.*?)</i>\s*' \
  29. '\s*</span>\s*' \
  30. '\s*<span.*><i.*></i><i class="js-num">(.*?)</i></span>\s*' \
  31. '\s*</span>'
  32.  
  33. def __init__(self, url):
  34. self.url = url
  35.  
  36. # 获取网站源代码
  37. def gethtml(self):
  38. res = requests.get(self.url)
  39. res.encoding = "UTF-8"
  40. return res.text
  41.  
  42. # 获得信息
  43. def gethtmlinfo(self):
  44. html = self.gethtml()
  45. all = re.findall(self.part, html)
  46. return all
  47.  
  48. # 下载图片,保存到myrobot下, 可以自定义文件名,哈哈重复下载保证成功(最多3次)
  49. def downloadimg(self, url, name=None):
  50. ok = 0
  51. for i in range(3):
  52. try:
  53. if name != None:
  54. path = self.myrobot + name + "." +url.split('.')[-1]
  55. else:
  56. path = self.myrobot + url.split('/')[-1]
  57. url = url.replace('\\', '')
  58. r = requests.get(url, timeout=30)
  59. r.raise_for_status()
  60. r.encoding = r.apparent_encoding
  61. if not os.path.exists(self.myrobot):
  62. os.makedirs(self.myrobot)
  63. if not os.path.exists(path):
  64. with open(path, 'wb') as f:
  65. f.write(r.content)
  66. f.close()
  67. print(path + ' 文件保存成功')
  68. ok = 1
  69. else:
  70. print('文件已经存在')
  71. except:
  72. print("异常")
  73. continue
  74.  
  75. if ok == 1:
  76. break
  77.  
  78. # 保存信息
  79. def saveinfo(self, data):
  80. for i in data:
  81. s.downloadimg(i[0], i[1]+"-"+str(i[2]));
  82.  
  83. if __name__ == "__main__":
  84. # lol分类的url
  85. s = Spider("https://www.huya.com/g/lol")
  86. data = s.gethtmlinfo()
  87. s.saveinfo(data)

只需要在main中给出分类页面的url即可

然后呢,修改一下保存路径就好了

结果如下:

python3 简单爬虫的更多相关文章

  1. python3简单爬虫

    最近在抽空学了一下python,于量就拿爬是练了下手,不得不说python的上手非常简单.在网上找了一下,大都是python2的帖子,于是随手写了个python3的.代码非常简单就不解释了,直接贴代码 ...

  2. Python3简单爬虫抓取网页图片

    现在网上有很多python2写的爬虫抓取网页图片的实例,但不适用新手(新手都使用python3环境,不兼容python2), 所以我用Python3的语法写了一个简单抓取网页图片的实例,希望能够帮助到 ...

  3. python3+ 简单爬虫笔记

    import urllib.request import re def getHtml(url): html = urllib.request.urlopen(url).read() return h ...

  4. Python3网络爬虫(1):利用urllib进行简单的网页抓取

    1.开发环境 pycharm2017.3.3 python3.5 2.网络爬虫的定义 网络爬虫,也叫网络蜘蛛(web spider),如果把互联网比喻成一个蜘蛛网,spider就是一只在网上爬来爬去的 ...

  5. python3实现简单爬虫功能

    本文参考虫师python2实现简单爬虫功能,并增加自己的感悟. #coding=utf-8 import re import urllib.request def getHtml(url): page ...

  6. 【python3两小时快速入门】入门笔记03:简单爬虫+多线程爬虫

    作用,之间将目标网页保存金本地 1.爬虫代码修改自网络,目前运行平稳,博主需要的是精准爬取,数据量并不大,暂未加多线程. 2.分割策略是通过查询条件进行分类,循环启动多条线程. 1.单线程简单爬虫(第 ...

  7. Python3.x爬虫教程:爬网页、爬图片、自己主动登录

    林炳文Evankaka原创作品. 转载请注明出处http://blog.csdn.net/evankaka 摘要:本文将使用Python3.4爬网页.爬图片.自己主动登录.并对HTTP协议做了一个简单 ...

  8. python网络爬虫,知识储备,简单爬虫的必知必会,【核心】

    知识储备,简单爬虫的必知必会,[核心] 一.实验说明 1. 环境登录 无需密码自动登录,系统用户名shiyanlou 2. 环境介绍 本实验环境采用带桌面的Ubuntu Linux环境,实验中会用到桌 ...

  9. Python3 网络爬虫(请求库的安装)

    Python3 网络爬虫(请求库的安装) 爬虫可以简单分为几步:抓取页面,分析页面和存储数据 在页面爬取的过程中我们需要模拟浏览器向服务器发送请求,所以需要用到一些python库来实现HTTP的请求操 ...

随机推荐

  1. tortoisesvn帮助手册

    http://tortoisesvn.net/docs/nightly/TortoiseSVN_zh_CN/index.html

  2. JBoss jar包冲突及jar加载顺序

    http://blog.163.com/javaee_chen/blog/static/17919507720116149511489/将一个完整的.war包部署到Jboss容器中,启动后报如下错误: ...

  3. sqlite 小刀 初试

    SQLite,是一款轻型的数据库,是遵守ACID的关系型数据库管理系统,它包含在一个相对小的C库中.它是D.RichardHipp建立的公有领域项目.它的设计目标是嵌入式的,而且目前已经在很多嵌入式产 ...

  4. FreeBSD Top States

    转自:http://blog.csdn.net/fcoolx/article/details/4412196 select Process is blocked in the select(2) sy ...

  5. web前端规范

    无论是从技术角度还是开发视角,对于web前端开发规范文档都有一定规范,本文就css3和html5的发展前景总结了一系列的web开发文档,仅供大家参考. 规范目的:为提高团队协作效率, 便于后台人员添加 ...

  6. Navicat Premium快速导出数据库ER图和数据字典

    2.快速导出数据库数据字典: SQL Server 数据库,生成数据字典 use YourDatabase --指定要生成数据字典的数据库 go SELECT 表名= then d.name else ...

  7. 从【MySQL server has gone away】说起

    本文目的 这几天开发了一个PHP CLI程序,用于后台定时调度执行一些任务.此脚本采用了PHP的多进程(pcntl_fork),共享内存和信号量进行IPC和同步.目的是将串行的任 务并行执行,缩短执行 ...

  8. jcifs 具体解释读取网络共享文件数据

    时隔1年半,没有发过新的帖子了,也没怎么来过CSDN逛逛了,人也懒散了. 今天收到网友的提问,才回来看看.认为应该再写点什么出来.只是.发现自己研究是不是太深入,写不出那么高深的东西.那就写点肤浅的东 ...

  9. excel weekday

    weekday(日期值)=星期几 星期天是1 星期六是7

  10. Atitit .linux 取回root 密码q99

    Atitit .linux 取回root 密码q99 1.1. 停止mysql1 1.2. mysqld_safe路径1 1.3. Mysql配置文件路径1 1.4. Mysql路径1 1.5. 安全 ...