猫眼api html,Requests库+正则爬取猫眼电影Top100
声明:此篇文章主要是观看静觅教学视频后做的笔记,原教程地址:https://cuiqingcai.com/
流程框架
1.抓取单页内容:利用requests请求目标站点,得到单个网页HTML代码,返回结果。
2.正则表达式分析:根据HTML代码分析得到电影的名称,主演,上映时间,评分,图片链接等信息
3.开启循环及多线程:对多页内容遍历,开启多线程提高抓取速度
4.保存至文件:通过文件的形式将结果保存,每一部电影一个结果一行Json字符串
流程设计
1.maoyan_Spider函数是一个整体的爬虫调度器,其中包含了请求的url地址,headers请求头
def maoyan_Spider(offset):
"""
作用:猫眼电影调度器
offset:get的页码参数
"""
url = 'http://maoyan.com/board/4?offset=' + str(offset)
headers = {
'User-Agent':'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.62 Safari/537.36'
}
# 获取单页html
html = get_one_page(url, headers)
# print(html)
# 将每一页的电影信息解析,并写入文件中
for item in parse_one_page(html):
# print(item)
item_str = json.dumps(item, ensure_ascii=False)
write_to_file(item_str)
2.首先以单个网页源代码进行分析,进入到猫眼电影官网榜单,通过构造请求可以拿到http://maoyan.com/board/4?的源码
def get_one_page(url, headers):
"""
作用:获取一页的源码
url:请求地址
headers:请求头
"""
try:
response = requests.get(url, headers=headers)
if response.status_code == 200:
return response.text
return None
except RequestException:
return None
3.接下来感觉整个爬虫的难点就在于解析,源码有了,这里我使用的还是正则来提取数据,稍有字符写错,可能就解析不出来了。下面以Top榜第一名为例进行解析,并转化为json格式保存
1
霸王别姬
主演:张国荣,张丰毅,巩俐
上映时间:1993-01-01(中国香港)
9.6
可以得出其字符串匹配规则是
'
.*?board-index.*?>(.*?).*?data-src="(.*?)".*?name">(.*?).*?star">(.*?).*?releasetime">(.*?).*?integer">(.*?).*?fraction">(.*?)'
4.然后通过使用re模块findall方法找到所有电影信息,电影信息包含排名,图片地址,电影名称,主演,上映时间,评分。findall方法返回的是一个元素为元组的列表,然后遍历这些元素通过yield生成json字典形式
def parse_one_page(html):
"""
作用:解析一页的源码
html:网页源码
"""
pattern = re.compile('
.*?board-index.*?>(.*?).*?data-src="(.*?)".*?name">(.*?).*?star">(.*?).*?releasetime">(.*?).*?integer">(.*?).*?fraction">(.*?)', re.S)
items = pattern.findall(html)
# print(items)
for item in items:
yield {
'index': item[0],
'image': item[1],
'title': item[2],
'actor': item[3].strip()[3:],
'time': item[4].strip()[5:],
'score': item[5]+item[6]
}
5.最后是写入文件,因为此处是对每个电影信息进行写入,所以注意写入方法用的是a,不是w。否则写入的内容只有一个电影信息,也就是Top100
def write_to_file(item):
"""
作用:往文件中写入内容
item:处理后的单个电影信息
"""
with open('result.txt', 'a', encoding='utf-8') as f:
f.write(item + '\n')
猫眼api html,Requests库+正则爬取猫眼电影Top100相关推荐
- Crawler:基于BeautifulSoup库+requests库实现爬取2018最新电影《后来的我们》热门短评
Crawler:基于BeautifulSoup库+requests库实现爬取2018最新电影<后来的我们>热门短评 目录 输出结果 实现代码 输出结果 实现代码 # -*- coding: ...
- python3爬虫实战:requests库+正则表达式爬取头像
python3爬虫实战:requests库+正则表达式爬取头像 网站url:https://www.woyaogexing.com/touxiang/qinglv/new/ 浏览网页:可以发现每个图片 ...
- 运用正则爬取猫眼电影流程
一.爬虫爬取网站流程 1.分析网站的数据来源 分析网站结构,待爬取数据在哪. 2.查看页面数据能否通过requests模块获取到 (1)在开发者工具中,找到页面的url对应的请求.通过这条请求 ...
- 利用正则爬取猫眼电影
爬取猫眼电影 import json import requests from requests.exceptions import RequestException import re def ge ...
- Requests+正则爬取猫眼电影TOP100
(一)目标站点的分析 首先打开我们的目标网站,发现每一页有十个电影,最下面有分页标志,而分页只改变的是标签后缀,如下: 而后可以在网页按f12打开源代码管理,查看网页每处信息对应的源代码形式,如下图: ...
- requests+正则爬取猫眼电影前100
最近复习功课,日常码农生活. import requests from requests.exceptions import RequestException import re import jso ...
- python爬虫requests实战_Python爬虫之requests库网络爬取简单实战
实例1:直接爬取网页 实例2 : 构造headers,突破访问限制,模拟浏览器爬取网页 实例3 : 分析请求参数,构造请求参数爬取所需网页 实例4: 爬取图片 实例5: 分析请求参数,构造请求参数爬取 ...
- requests+bs4+正则爬取前程无忧招聘信息进阶版
整理思路 获取所有职位信息的url 通过正则去掉不符合要求的url 爬取详情页信息 解析详情页 写入txt文件 循环抓取 提高速度多线程爬取 先放上url:https://search.51job.c ...
- Python网页爬虫练习:requests库Beautiful爬取bilibili网页信息
我是卢本伟! import requests from bs4 import BeautifulSoup import bs4 def get_blibli_vedio():#获取bilibili实时 ...
最新文章
- R可视化删除ggplot2图中的网格线(Gridlines)
- 开源三级联动,Vue.js编写省份、城市、区、县三级联动源码
- 【深度学习】softmax后处理和弹性形变前处理
- html前端 echarts图表使用详解
- android enum java包_Android @IntDef注解取代Java enum枚举提高性能详解
- 《Scikit-Learn与TensorFlow机器学习实用指南》 第01章 机器学习概览
- JavaBean fields TO ExtjsMode fields
- SQL进阶,子查询与窗口函数
- 使用TA-Lib在vn.trader上开发CTA交易策略
- [翻译]用表单字段加亮的方式为用户提供友好的界面
- 队列的顺序存储框架搭建
- 台大李宏毅Machine Learning 2017Fall学习笔记 (9)Keras
- Solidworks二次开发环境搭建(Net)
- 单独计算机械台班费套什么定额,机械台班费用定额
- css margin 塌陷 经典bug
- 使用谷歌Chrome浏览器将网页保存为html格式
- C++——set基本操作总结
- Github如何快速找到优秀开源项目
- Python 数据扩充(亮度、翻转、噪声)
- 避免重要数据泄露的8种方式
热门文章
- .net 5 windows 系统服务 workserver
- bp神经网络预测未来数据,bp神经网络数据预处理
- TROPOMI(哨兵5P)数据介绍及下载方法
- pgi linux安装教程,Ubuntu 10.10下安装PGI Fortran 10.2
- ssh mysql视屏_ssh+MySQL开发VOD视频点播系统
- 教你搭建局域网影吧vod点播系统
- TensorFlow的神经网络设计讲解
- vue实现图片滑动验证功能——功能实现
- 转:创业公司如何公平分配股权?
- 水位报警器c语言程序,简易水位报警器制作_制作简单的水满报警器 - 全文