Day 05 文本处理和爬虫基础1
什么是文件
文件是操作系统提供的一个虚拟概念, 用来存储信息
什么是文本
.txt/.word/.md/.py/.xml/.ini 存储的是文字
如何通过文本编辑器控制.txt文件
- 找到文件路径
- 打开文件
- 读取/修改文件
- 保持
- 关闭
file_path = r'C:\Users\Black\Documents\Python learning\day 05\github.txt'
f = open(file_path) # 把该路径的文件读入内存,只是没有可视化的界面而已
data = f.read() # 读取文件(内容)
打开文件的三种模式
r ---> read (只读不可写)
w ---> write (只写不可读, 清空文本内容)
a ---> append (只写不可读, 追加)
file_path = r'C:\Users\Black\Documents\Python learning\day 05\github.txt'
f = open(file_path, 'a', encoding = 'gbk') # encoding 告诉计算机用什么编码格式翻译硬盘中的0和1
print('f.readable:', f.readale())
print('f.writable:', f.writable())
f.write('追加写入')
date = f.read()
print(data)
t和b模式
gbk/utf8只针对文本,所以音频通过rb模式打开-->读取二进制,b模式下没有encoding这个参数,b不单独使用,一般与r/w/a一起配合使用
f = open(r'D:\上海python12期视频\python12期预科班视频\day 05\01 文本处理.mp4','rb') # 读入内存
data = f.read()
t 模式针对文本文件,t模式不单独使用,必读得和r/w/a一起使用
f = open(r'C:\Users\Black\Documents\Python learning\day 05\github.txt', 'rt', encoding = 'gbk')
data = f.read()
print(data)
高级应用
r+ 可写可读
a+ 可写可读
w+ 可写可读(清空文件)
使用with open在缩进结束后会自动关闭文件
with open(r'C:\Users\Black\Documents\Python learning\day 05\github.txt', 'r+', encoding = 'gbk') as f:
# 这个缩进内部的代码都是文件打开的状态
data = f.read
print(data)
文本处理 + 词云分析
import jieba
import wordcloud
import imageio
# 读取文件内容
with open(r'C:\Users\Black\Documents\Python learning\day 05\github.txt', 'r+', encoding = 'gbk') as f:
data = f.read()
# 使用结巴对文件内容进行切割
data_list = jieba.lcut(data)
data = ' '.join(data_list)
# 将github logo图片读入内存
img = imageio.imread(r'C:\Users\Black\Pictures\githublogo.jpg')
# 使用词运模块生成词云图
w = wordcloud.WordCloud(background_color= 'white', mask= img, font_path = r'C:\Windows\Fonts\simsun.ttc')
w.generate(data)
w.to_file('github.jpg')
效果如下

爬虫原理
- 发送请求 (填入一个url)
- 获取数据
- 解析数据
- 保存数据
requests模块
import requests
res = requests.get(url= '目标网址')
# 文本
res.text
# 二进制流 凡是二进制流数据,不需要指定字符编码
res.content
re模块
# re.S 全局搜索
data_list = re.findall(正则匹配规则, 解析内容, re.S)
# 贪婪匹配 .*? 过滤任何内容
# 非贪婪匹配 (.*?) 提取内容
爬取图片
# 爬取视觉中国图片
import requests
# 使用requests.get()发送请求
response = requests.get(url = 'http://goss.cfp.cn/creative/vcg/nowarter800/new/VCG211235767437.jpg' )
# print(response) 对象
# 接受二进制流
# print(response.content)
# 保存数据
with open('VCG_GET.jpg', 'wb') as f:
f.write(response.content)
print('图片下载成功')
爬取视频
# 爬取二更视频
# 往视频地址发送请求, 获取二进制流
import requests
response = requests.get(url= 'http://v1.ergengtech.com/transcode/9c55722e379a9523b51e36f7cd3945cb/2fcc5d2709dd5aa1d03982f040410d6a.mp4')
# 把二进制 流数据保存到本地
# wb: write + bytes 写二进制流模式
# 凡是二进制流数据,不需要指定字符编码
with open('ergen_video.mp4', 'wb') as f:
f.write(response.content)
print('视频下载成功')
爬取文本
# 爬取豆瓣top25电影
# 电影名称/电影详情链接/低电影评分
# 1.发送请求
import requests
import re
response = requests.get(url='https://movie.douban.com/top250')
# print(response.text)
# 2.析提取数据
# 查找所有
# re.S 全局查找
# re.findall('正则匹配规则', '解析文本', re.S)
movie_list = re.findall('<div class="item">.*?<a href="(.*?)">.*?<span class="title">(.*?)</span>.*?<span class="rating_num" property="v:average">(.*?)</span>.*?<span>(.*?)人评价</span>', response.text, re.S)
# print(movie_list)
# 循环写入
with open('douban.txt', 'a', encoding='utf-8') as f:
for line in movie_list:
movie_name = line[1]
movie_score = line[2]
movie_num_of_comm = line[3]
movie_website = line[0]
f.write(movie_name + '---' + movie_score + '---' + movie_num_of_comm + '---' + movie_website + '\n')
print('文本爬取成功')
Day 05 文本处理和爬虫基础1的更多相关文章
- Python爬虫基础
前言 Python非常适合用来开发网页爬虫,理由如下: 1.抓取网页本身的接口 相比与其他静态编程语言,如java,c#,c++,python抓取网页文档的接口更简洁:相比其他动态脚本语言,如perl ...
- python 3.x 爬虫基础---常用第三方库(requests,BeautifulSoup4,selenium,lxml )
python 3.x 爬虫基础 python 3.x 爬虫基础---http headers详解 python 3.x 爬虫基础---Urllib详解 python 3.x 爬虫基础---常用第三方库 ...
- python从爬虫基础到爬取网络小说实例
一.爬虫基础 1.1 requests类 1.1.1 request的7个方法 requests.request() 实例化一个对象,拥有以下方法 requests.get(url, *args) r ...
- 爬虫基础以及 re,BeatifulSoup,requests模块使用
爬虫基础以及BeatifulSoup模块使用 爬虫的定义:向网站发起请求,获取资源后分析并提取有用数据的程序 爬虫的流程 发送请求 ---> request 获取响应内容 ---> res ...
- python爬虫-基础入门-爬取整个网站《2》
python爬虫-基础入门-爬取整个网站<2> 描述: 开场白已在<python爬虫-基础入门-爬取整个网站<1>>中描述过了,这里不在描述,只附上 python3 ...
- python基础整理6——爬虫基础知识点
爬虫基础 什么是爬虫: 网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本.另外一些不常使用的名字还有蚂蚁. ...
- python 3.x 爬虫基础---Requersts,BeautifulSoup4(bs4)
python 3.x 爬虫基础 python 3.x 爬虫基础---http headers详解 python 3.x 爬虫基础---Urllib详解 python 3.x 爬虫基础---Requer ...
- python_爬虫基础学习
——王宇阳—根据mooc课程总结记录笔记(Code_boy) Requests库:自动爬去HTML页面.自动网络请求提交 robots.txt:网络爬虫排除标准 Beautiful Soup库:解析H ...
- 【学习笔记】第二章 python安全编程基础---python爬虫基础(urllib)
一.爬虫基础 1.爬虫概念 网络爬虫(又称为网页蜘蛛),是一种按照一定的规则,自动地抓取万维网信息的程序或脚本.用爬虫最大的好出是批量且自动化得获取和处理信息.对于宏观或微观的情况都可以多一个侧面去了 ...
随机推荐
- C#查看已下载文件大小和扩展名
FileInfo fi = new FileInfo(fullfile);//fullfile文件路径 ong Size = fi.Length;//查看已下载文件的大小 C# 获取文件名及扩展名 s ...
- iOS界面流畅技巧之微博 Demo 性能优化技巧
微博 Demo 性能优化技巧 我为了演示 YYKit 的功能,实现了微博和 Twitter 的 Demo,并为它们做了不少性能优化,下面就是优化时用到的一些技巧. 预排版 当获取到 API JSON ...
- django_0:项目流程
1.django-admin(.py) startproject mysite——创建项目project 得到__init__.py(说明工程以包结构存在) settings.py(当前工程的一些配置 ...
- objc里的伪指针TaggedPointer
如果你看过我前面两篇objc函数枢纽msgSend和你印象中的NSString是这样吗,相信已经多次看过它的身影了,到底它是何物何作用,我今日就来揭开谜团.我之所为称呼它为伪指针,是因为它像幽灵一样, ...
- 【NServiceBus】什么是Saga,Saga能做什么
前言 Saga单词翻译过来是指尤指古代挪威或冰岛讲述冒险经历和英雄业绩的长篇故事,对,这里强调长篇故事.许多系统都存在长时间运行的业务流程,NServiceBus使用基于事件驱动的 ...
- 转:MySQL中变量的定义和变量的赋值使用(转)
MySQL中变量的定义和变量的赋值使用(转) 说明:现在市面上定义变量的教程和书籍基本都放在存储过程上说明,但是存储过程上变量只能作用于begin...end块中,而普通的变量定义和使用都说的比较 ...
- think PHP 查询、更改
最近公司没有什么新项目,故准备搞搞PHP,正好后端有一些小东西需要搞一下,我就来试试吧. PHP 基于think PHP 3 实现功能: 1.为销售绑定虚拟号码分组(查询可以绑定的分组 -> 绑 ...
- Codecommit
1. 生成IAM 用户组并附权限. 2.生成IAM用户并加入组. 3. 为用户生成key-pair 4. 上传公钥到aws 5. 配置config文件,其中user是aws 为公钥生成的id. 6. ...
- PHP提高SESSION响应速度的方法有哪些
1.设置多级目录存储SESSION 默认session的存储目录是1级目录,如果用户量比较大,session文件数量就比较大,我们可以设置目录数为2,使用2级目录可以提交查找和存取速度.不过这种方式对 ...
- 2019-10-30:渗透测试,基础学习,mssql堆叠内联注入,mongodb基础语法
使用xp_cmdshell需要堆叠注入,http://192.168.190.148/less-1.asp?id=1';EXEC sp_configure 'show advanced options ...