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

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

就顺着老师思路

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

HuYaCateScrapy.py

 #!/usr/bin/python
# -*- coding: utf-8 -*- """
@ author: happy_code
@ contact: happy_code@foxmail.com
@ software: 爬虫
@ desc: 获取虎牙直播类页面主播名和人气,下载头像,并以名字和人气命名
""" import urllib
import requests
import re
import os class Spider: # 目标url
url = "" # 保存地址
myrobot = "D:/scinfo/" # 获取的主播名和人气,头像
part = '<span class="txt">\s*' \
'\s*<span class="avatar fl">\s*' \
'\s*<img.*data-original="(.*?)".*>\s*' \
'\s*<i.*>(.*?)</i>\s*' \
'\s*</span>\s*' \
'\s*<span.*><i.*></i><i class="js-num">(.*?)</i></span>\s*' \
'\s*</span>' def __init__(self, url):
self.url = url # 获取网站源代码
def gethtml(self):
res = requests.get(self.url)
res.encoding = "UTF-8"
return res.text # 获得信息
def gethtmlinfo(self):
html = self.gethtml()
all = re.findall(self.part, html)
return all # 下载图片,保存到myrobot下, 可以自定义文件名,哈哈重复下载保证成功(最多3次)
def downloadimg(self, url, name=None):
ok = 0
for i in range(3):
try:
if name != None:
path = self.myrobot + name + "." +url.split('.')[-1]
else:
path = self.myrobot + url.split('/')[-1]
url = url.replace('\\', '')
r = requests.get(url, timeout=30)
r.raise_for_status()
r.encoding = r.apparent_encoding
if not os.path.exists(self.myrobot):
os.makedirs(self.myrobot)
if not os.path.exists(path):
with open(path, 'wb') as f:
f.write(r.content)
f.close()
print(path + ' 文件保存成功')
ok = 1
else:
print('文件已经存在')
except:
print("异常")
continue if ok == 1:
break # 保存信息
def saveinfo(self, data):
for i in data:
s.downloadimg(i[0], i[1]+"-"+str(i[2])); if __name__ == "__main__":
# lol分类的url
s = Spider("https://www.huya.com/g/lol")
data = s.gethtmlinfo()
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. Linux 目录和文件操作

    Linux常用命令--目录和文件操作 [目录]删除.复制.移动 : 1.删除文件夹用:rmdir 文件夹名 但是rmdir不能删除非空的文件夹,那如何删除非空文件夹呢: 2.通常情况下,删除文件用:r ...

  2. C# 递归查找文件夹下所有文件和子文件夹的所有文件

    方法实现 public class DirectoryAllFiles { static List<FileInformation> FileList = new List<File ...

  3. ip地址库选择

    目前市面上常用的ip地址库,有以下几种 1,新浪的api接口(限制未知)http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=js& ...

  4. XML - 十分钟了解XML结构以及DOM和SAX解析方式

    引言 NOKIA 有句著名的广告语:"科技以人为本".不论什么技术都是为了满足人的生产生活须要而产生的.详细到小小的一个手机.里面蕴含的技术也是浩如烟海.是几千年来人类科技的结晶, ...

  5. iOS 9应用开发教程之ios9中实现button的响应

    iOS 9应用开发教程之ios9中实现button的响应 IOS9实现button的响应 button主要是实现用户交互的.即实现响应.button实现响应的方式能够依据加入button的不同分为两种 ...

  6. 【转载】 使用rman进行坏块修复(ORA-01578、ORA-01110)

    [转自]http://blog.itpub.net/21256317/viewspace-1062055/ 使用rman进行坏块修复(ORA-01578.ORA-01110) 2012年的一天,处理的 ...

  7. 如何通过 AAR 形式集成 leakcanary-android 服务

    如何通过 AAR 形式集成 leakcanary-android 服务 如何通过在线引用的方式拿到所有相关的依赖项文件? #1.禁用 Gradle 离线模式 #2.按照文档要求添加项目依赖 #3.Sy ...

  8. Java遍历包中所有类

    PackageUtil 类 import java.io.File; import java.net.URL; import java.net.URLClassLoader; import java. ...

  9. HTML5之canvas元素

    定义和用法 fillStyle 属性设置或返回用于填充绘画的颜色.渐变或模式. 默认值: #000000 JavaScript 语法: context.fillStyle=color|gradient ...

  10. neo4j使用笔记

    #coding:utf- __author__ = 'similarface' # 安装驱动:pip install neo4j-driver from neo4j.v1 import GraphDa ...