python3 简单爬虫
爬取虎牙直播分类页面的主播的头像,名字,人气
今天学习了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 简单爬虫的更多相关文章
- python3简单爬虫
		
最近在抽空学了一下python,于量就拿爬是练了下手,不得不说python的上手非常简单.在网上找了一下,大都是python2的帖子,于是随手写了个python3的.代码非常简单就不解释了,直接贴代码 ...
 - Python3简单爬虫抓取网页图片
		
现在网上有很多python2写的爬虫抓取网页图片的实例,但不适用新手(新手都使用python3环境,不兼容python2), 所以我用Python3的语法写了一个简单抓取网页图片的实例,希望能够帮助到 ...
 - python3+ 简单爬虫笔记
		
import urllib.request import re def getHtml(url): html = urllib.request.urlopen(url).read() return h ...
 - Python3网络爬虫(1):利用urllib进行简单的网页抓取
		
1.开发环境 pycharm2017.3.3 python3.5 2.网络爬虫的定义 网络爬虫,也叫网络蜘蛛(web spider),如果把互联网比喻成一个蜘蛛网,spider就是一只在网上爬来爬去的 ...
 - python3实现简单爬虫功能
		
本文参考虫师python2实现简单爬虫功能,并增加自己的感悟. #coding=utf-8 import re import urllib.request def getHtml(url): page ...
 - 【python3两小时快速入门】入门笔记03:简单爬虫+多线程爬虫
		
作用,之间将目标网页保存金本地 1.爬虫代码修改自网络,目前运行平稳,博主需要的是精准爬取,数据量并不大,暂未加多线程. 2.分割策略是通过查询条件进行分类,循环启动多条线程. 1.单线程简单爬虫(第 ...
 - Python3.x爬虫教程:爬网页、爬图片、自己主动登录
		
林炳文Evankaka原创作品. 转载请注明出处http://blog.csdn.net/evankaka 摘要:本文将使用Python3.4爬网页.爬图片.自己主动登录.并对HTTP协议做了一个简单 ...
 - python网络爬虫,知识储备,简单爬虫的必知必会,【核心】
		
知识储备,简单爬虫的必知必会,[核心] 一.实验说明 1. 环境登录 无需密码自动登录,系统用户名shiyanlou 2. 环境介绍 本实验环境采用带桌面的Ubuntu Linux环境,实验中会用到桌 ...
 - Python3 网络爬虫(请求库的安装)
		
Python3 网络爬虫(请求库的安装) 爬虫可以简单分为几步:抓取页面,分析页面和存储数据 在页面爬取的过程中我们需要模拟浏览器向服务器发送请求,所以需要用到一些python库来实现HTTP的请求操 ...
 
随机推荐
- 使用vs远程调试iis站点
			
在vs安装目录下IDE文件夹下的Remote Debugger 复制到服务器运行 启动msvsmon.exe msvsmon.exe启动后设置远程连接不验证身份 vs中 调试→附加到进程 ip+端口访 ...
 - 两种方法一句代码隐藏Activity的标题栏
			
把Activity的标题栏隐藏有两种方法.一种是在在Activity里面设置javacode.还有一种是在项目的清单文件AndroidManifest.xml中设置模版样式. 一.在Activity中 ...
 - C语言控制台打印3D爱心图案
			
非常多程序猿都认为自己的编程工作十分的鼓噪乏味.一整天面对的都是一些写不完的代码和改不完的Bug.今天我们要给大家分享一些有趣的C语言代码,也许能够为你无聊的工作带来一丝乐趣. 这些代码能够完毕几个不 ...
 - python-创建列表
			
创建个空列表 album = [] 创建非空列表 album = ['Black Star','David Bowie',25.True] 向列表中添加新的元素 append 方法,元素自动地排列到列 ...
 - layer弹窗的操作方法
			
1.首先去http://layer.layui.com/下载插件 2.在网站上有演示说明 3.操作方法如何 <script src="../js/layer/layer.js" ...
 - [na]台式机装原版Win2008R2
			
坑了老半天,总结出几点 1,系统os下载: http://msdn.itellyou.cn/ 注:其他地方下载的,装后发现不是起不来就是驱动装不了. 2,u盘里放个压缩软件: 好呀压缩 和 浏览 ...
 - hsqldb
			
http://www.hsqldb.org/ HSQLDB (HyperSQL DataBase) is the leading SQL relational database software wr ...
 - Python  常用内建模块(os, sys,random)
			
一.os 模块 1,操作系统与环境变量 import osprint(os.name) #操作系统类型,如果是posix 说明系统是linux unix 或 mac os x :如果是nt 就是win ...
 - vue 插件
			
开发插件 插件通常会为vue添加全局功能,插件的范围没有限制--一般有下面几种: 1,添加全局方法或者属性,例:vue-coustom-element 2,添加全局资源:指令.过滤器,.过渡等,如vu ...
 - .net , java   webSocket 连接 Socket.io (1.4.4版本) 问题
			
.net版Socketio4net类库和java版socket.io-java-client类库 连接socket.io 1.4版本都不行,网上大多是socket.io 0.9版本的,socket.i ...