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的请求操 ...
随机推荐
- tortoisesvn帮助手册
http://tortoisesvn.net/docs/nightly/TortoiseSVN_zh_CN/index.html
- JBoss jar包冲突及jar加载顺序
http://blog.163.com/javaee_chen/blog/static/17919507720116149511489/将一个完整的.war包部署到Jboss容器中,启动后报如下错误: ...
- sqlite 小刀 初试
SQLite,是一款轻型的数据库,是遵守ACID的关系型数据库管理系统,它包含在一个相对小的C库中.它是D.RichardHipp建立的公有领域项目.它的设计目标是嵌入式的,而且目前已经在很多嵌入式产 ...
- FreeBSD Top States
转自:http://blog.csdn.net/fcoolx/article/details/4412196 select Process is blocked in the select(2) sy ...
- web前端规范
无论是从技术角度还是开发视角,对于web前端开发规范文档都有一定规范,本文就css3和html5的发展前景总结了一系列的web开发文档,仅供大家参考. 规范目的:为提高团队协作效率, 便于后台人员添加 ...
- Navicat Premium快速导出数据库ER图和数据字典
2.快速导出数据库数据字典: SQL Server 数据库,生成数据字典 use YourDatabase --指定要生成数据字典的数据库 go SELECT 表名= then d.name else ...
- 从【MySQL server has gone away】说起
本文目的 这几天开发了一个PHP CLI程序,用于后台定时调度执行一些任务.此脚本采用了PHP的多进程(pcntl_fork),共享内存和信号量进行IPC和同步.目的是将串行的任 务并行执行,缩短执行 ...
- jcifs 具体解释读取网络共享文件数据
时隔1年半,没有发过新的帖子了,也没怎么来过CSDN逛逛了,人也懒散了. 今天收到网友的提问,才回来看看.认为应该再写点什么出来.只是.发现自己研究是不是太深入,写不出那么高深的东西.那就写点肤浅的东 ...
- excel weekday
weekday(日期值)=星期几 星期天是1 星期六是7
- 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. 安全 ...