抓取猫眼热映口碑榜
时间:2019-11-06
本文章向大家介绍抓取猫眼热映口碑榜,主要包括抓取猫眼热映口碑榜使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
看了两三个爬虫程序,就自己写了一个简单的爬虫程序,爬取的是:猫眼电影-榜单-热映口碑榜11月6号的数据
from urllib import request import re def getHtml(url, ua_agent='Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:61.0) Gecko'): headers = {"User-Agent":ua_agent} req = request.Request(url, headers=headers) response = request.urlopen(req) html = response.read().decode('utf-8') return html def movie_all(html): pattern = re.compile('<p class="name"[\s\S]*?title="([\s\S]*?)"[\s\S]*?<p class="star">([\s\S]*?)</p>[\s\S]*?<p class="releasetime">([\s\S]*?)</p>') items = re.findall(pattern, html) return items def write_to_file(text): with open("maoyanTop10.txt", 'a') as f: f.write(str(text)+'\n') if __name__ == "__main__": url = "https://maoyan.com/board/7" items = movie_all(getHtml(url)) for item in items: write_to_file(item[0].strip()+"||"+item[1].strip()+"||"+item[2].strip())
效果:
小知识点:1.用正则表达式匹配时,有的地方看着没空格,实际上有空字符串,需要用万能表达式([\s\S]*?)顶替,例如上一个p标记的</p>到下一个p标记的<p>中间就需要要万能表达式。
2.在写文件时,如果在循环中写文件要以“a”(追加)的方式打开文件,如果以“w”(写入)打开,只会看到写入了最后一次循环的数据,因为“w”方式会清掉之前的数据再写入。
原文地址:https://www.cnblogs.com/hooo-1102/p/11806005.html
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Android实现头像上传功能
- 关于jasmine里debugElement.query和fixture.detectChanges的依赖关系
- 使用python批量转换文件编码为UTF-8的实现
- rxjs operator学习笔记
- python实现将两个文件夹合并至另一个文件夹(制作数据集)
- rxjs里使用from operator从一个generator里生成Observable
- 使用asyncScheduler进行Observable的延迟subscribe
- 解决flask接口返回的内容中文乱码的问题
- Android自定义控件实现带数值和动画的圆形进度条
- rxjs interval和take的混合使用
- Android自定义控件实现带文本与数字的圆形进度条
- 云函数Python依赖包安装,应用启动超时问题排查
- Android Volley扩展实现支持进度条的文件上传功能
- Android自定义控件实现球赛比分条效果
- rxjs里concat operators的用法