码迷,mamicode.com
首页 > 其他好文 > 详细

基本文件处理-爬取豆瓣电影排行榜

时间:2019-08-27 19:05:39      阅读:111      评论:0      收藏:0      [点我收藏+]

标签:存储   不可   path   find   com   seek   取数   网址   class   

文件的类型

什么是文件?

一堆.py/.txt 存储着文字信息文件,

文件的分类

二进制文件:由0、1组成,例如.png文件

文本文件:由单一特定编码组成的文件,如utf8,例如 .txt文件

文件的打开与关闭

文件处理的三个步骤

  • 打开(找到路径打开)

    打开模式 描述
    r 只读不可写
    w 只写不可读(会清空文件)
    a 追加不可读
    r+ 可读可写
    w+ 可读可写(会清空文件)
    a+ 可读可写
    b 二进制模式,用于打开多媒体文件
    t 文本模式(默认模式)
  • 操作(读取和写入)

    读取 描述
    read 读取全部内容
    readline 读取一行内容
    readlines 读取文件所有行
    写入 描述
    write 写入字符串
    writelines 将一个列表的元素写入文件
    seek 改变当前文件操作指针的位置
  • 关闭(保存并关闭)

    .flush() 保存

    .close() 关闭

使用方式

file_path = 'D:\上海python12期视频\python12期预科班视频\day 05\新时代中国特色社会主义.txt'
f = open(file_path,'r',encoding='gbk')  # encoding告诉计算机用什么编码格式翻译硬盘中的0和1
print(f.read())
f.close()
with open(r'D:\上海python12期视频\python12期预科班视频\day 05\huijiadeyouhuo.txt','r+',encoding='utf8') as fr:
    print(fr.read())

爬虫

requests库的使用

爬取网站的图片和视频 并保存到本地

# coding=utf-8
import requests
#爬取图片
w = requests.get(
    url="http://www.xiaohuar.com/d/file/20190628/26700fc24ce19a534d1ad797937426ac.jpg"
)
#接收二进制图片
print(w.content)
with open("校花图片1.png","wb") as f:
    f.write(w.content)
print("校花图片爬取成功!")

# 爬取视频
w = requests.get(
    url="https://video.pearvideo.com/mp4/adshort/20190827/cont-1595380-14312754_adpkg-ad_hd.mp4"
)

with open("梨视频.mp4","wb") as f:
    f.write(w.content)
print("视频爬取成功!")

爬取豆瓣电影的排行榜 并保存在本地

# coding=utf-8
import requests
import re

w = requests.get(
    url="https://movie.douban.com/top250"
)
## 获取响应文本
print(w.text)

'''
1.电影名称
2.电影详情页链接
3.电影评分
4.电影评价人数
'''
#解析并提取数据
# 查找所有
# re.S: 全局查找
# re.findall('正则匹配规则', '解析文本', re.S)
move_list = re.findall('<div class="item">.*?<a href="(.*?)">.*?<span class="title">(.*?)</span>.*?<span class="rating_num" property="v:average">(.*?)</span>.*?<span>(.*?)人评价</span>',w.text,re.S)
print(move_list)

num = 1
with open("douban.txt","a",encoding="utf8") as f:
    for line in move_list:
        print("%s %s的网址为 %s,%s人评分为 %s" % (num, line[0], line[1], line[2], line[3]))
        f.write("%s %s的网址为 %s,%s人评分为 %s" % (num, line[0], line[1], line[2], line[3]) + "\n")
        f.flush()
        num += 1

print("数据爬取成功,文件已保存。")

基本文件处理-爬取豆瓣电影排行榜

标签:存储   不可   path   find   com   seek   取数   网址   class   

原文地址:https://www.cnblogs.com/qinyujie/p/11420123.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!