使用Requests爬取猫眼电影
谈到爬虫大家可能对Requests库不会陌生,相比urllib库的话Requests库在处理网页认证和Cookies时更加方便,话不多少,下面让我通过爬取猫眼电影前100名排行榜实例来说明一下。
首先我们打开猫眼电影排行版链接‘https://maoyan.com/board/4’界面效果如图所示,可以看到排行榜第一名是张国荣主演的“霸王别姬”,还有电影评分。
当我们把网页下拉到最下方时,此时我们点击第二页,我们可以看到链接地址为‘https://maoyan.com/board/4?offset=10’,当鼠标点击第3页时网页链接地址为‘https://maoyan.com/board/4?offset=20’,点击第10页时网页链接地址为‘https://maoyan.com/board/4?offset=90’。此时我们不难发现出规律,当我们选择查看第几页的时候,只是offset=“”里面的参数在变,那当我们爬取到第一页的时候,通过一个for循环就可以把1-10页的网页内容爬取下来。
我们鼠标右击,然后选择“检查”查看网页代码:我们想要做的时爬取排行榜前100名的电影名称、排名、和图片地址,并把图片保存到本地。那么我们可以通过requests.get方法获取网页内容,然后通过正则表达式来匹配我们想要的内容。下面直接上代码:
import requests #引入requests库 import re,json #引入re和json模块def get_one_page(url): #定义一个方法来获取单个网页链接try: response = requests.get(url) #获取网页的textif response.status_code == 200 : #通过状态码是否等于200判断是否请求成功,成功的话返回text内容,未请求成功的 返回None值return response.text else :return Noneexcept BaseException :return Nonedef parse_one_page(html): #定义一个方法解析网页内容pattern = re.compile('<dd>.*?board-index.*?>(\d+)</i>.*?data-src="(.*?)".*?name"><a'+'.*?>(.*?)</a>.*?',re.S) #通过正则表达式匹配我们想要的内容,items = re.findall(pattern,html)print(items) #打印一下查看获取的内容是否匹配,此处上图一份: print(type(items)) #如图所示我们得到的是数据是个列表,列表里面又有元祖for item in items: #遍历列表,使用yield生成器生成一个字典,'index'为排名,'title'为电影名称,'image'为电影图片链接地址yield {'index' : item[0],'title': item[2],'image': item[1]} title = item[2] contents = requests.get(item[1]).content #把图片保存到本地,根据自己情况建立文件夹,在这我保存到的是D盘下的python1文件夹下面。 with open(r'D:\python1\ ' + title + '.jpg','wb') as f:f.write(contents)def write_to_file(content): #把获取的内容保存下来with open('result.txt','a',encoding='utf-8') as f:f.write(json.dumps(content,ensure_ascii=False) + '\n')f.close()def run(offset): #定义run方法,运行整个程序url = 'https://maoyan.com/board/4?offset=' + str(offset)html = get_one_page(url)for item in parse_one_page(html):#print(item)write_to_file(item)if __name__ == '__main__':for i in range(10): #通过range方法,生成offset的值,来获取猫眼排行榜1-10页的电影排名run(i*9)接下来啥也不说了上图给大家看:result.txt中的内容
python1的电影图片:
大家有兴趣的可以看看,以后会不定期和大家分享我学到的python内容和知识,文中有不当之处还请指教!
使用Requests爬取猫眼电影相关推荐
- requests爬取猫眼电影403错误解决方法
原代码如下: import requests from requests.exceptions import RequestExceptiondef one_page_code(url):try:pa ...
- 利用正则表达式爬取猫眼电影TOP100信息
本文利用requests库和正则表达式爬取了猫眼电影TOP100电影信息,并将电影封面和标题.主演等文字信息保存在了本地.本文完整代码链接:https://github.com/iapcoder/Ma ...
- Python语言实现用requests和正则表达式方法爬取猫眼电影排行榜前100部电影
#爬取猫眼电影排名前100的电影 import requests #电脑向服务器发送的请求库 from requests.exceptions import RequestException impo ...
- 爬虫从头学之Requests+正则表达式爬取猫眼电影top100
爬取思路 当我们想要爬取一个页面的时候,我们要保证思路清晰,爬虫的思路分四个步骤,发起请求,获取响应内容,解析内容,存储内容.根据这四个内容我们的思路就很清晰.以下为具体步骤 使用requests库爬 ...
- 使用Requests库+re库爬取猫眼电影评分
使用Requests库+re库爬取猫眼电影评分 作者:小胖 0x1: 分析 在简单的翻页中,我们可以知道.网页涵盖了以下几个规律 1.offset参数的值是除以30就是当前的页面 2.每个页面只有30 ...
- python战反爬虫:爬取猫眼电影数据 (一)(Requests, BeautifulSoup, MySQLdb,re等库)
姓名:隋顺意 博客:Sui_da_xia 微信名:世界上的霸主 本篇文章未涉及猫眼反爬,主要介绍爬取无反爬内容,战反爬内容请去 python战反爬虫:爬取猫眼电影数据 (二)(Requests, Be ...
- python战反爬虫:爬取猫眼电影数据 (二)(Requests, BeautifulSoup, MySQLdb,re等库)
姓名:隋顺意 博客:Sui_da_xia 微信名:世界上的霸主 本文主要介绍破解反爬,可以先去上一篇观看爬取无反爬内容 python战反爬虫:爬取猫眼电影数据 (一)(Requests, Beauti ...
- python爬虫 requests+bs4爬取猫眼电影 傻瓜版教程
python爬虫 requests+bs4爬取猫眼电影 傻瓜版教程 前言 一丶整体思路 二丶遇到的问题 三丶分析URL 四丶解析页面 五丶写入文件 六丶完整代码 七丶最后 前言 大家好我是墨绿 头顶总 ...
- python爬虫,爬取猫眼电影1(正则表达式)
本文用正则.xpath.beautifulsoup.css.pyquery几种不同的方式,爬取猫眼电影.只是记录过程.比较乱. 猫眼电影现在也添加了一些反爬虫机制,如果直接用requests可能会40 ...
最新文章
- SoapUI进行REST请求,POST方法提交到数据库的数据乱码问题
- 批量 kill mysql 中运行时间长的sql
- Linux 操作系统原理 — 文件系统 —文件
- CTFshow 命令执行 web50
- PHP常用功能块_错误和异常处理 — php(32)
- json中含有Unicode的处理办法 C#
- Jenkins自动部署SpringCloud项目
- FastDFS原理系列文章
- 【零售知识】商品库存成本计算的几种方式
- 何恺明团队新作ViTDet:用于目标检测的视觉Transformer主干网络
- 杭州出租车改革何以值得肯定
- Synopsys ICC 笔记
- 剑指 Offer 61-68
- python椭圆特征识别_opencv python中的椭圆检测
- 自动弹窗被拦截 html,chrome拦截弹窗问题的两种解决方式
- 2021-08-26某宝补蛋需要注意什么?
- 青少年编程等级考试scratch真题答题考试系统源码网站
- ue4 角色奔跑/冲刺/蹲下 /蹲走 动作切换蓝图
- Emacs进阶之eww浏览器
- 洞悉netfilter_洞悉网络数据包捕获
热门文章
- c#为什么用的人很少
- android游戏基址,Android上可执行ELF文件中的段不能有基址
- windows驱动开发推荐书籍
- 大数据相关职位的知识储备与系统学习路线规划以及所需时间
- 高级WEB前端游戏开发视频教程
- 视频中的3D人体姿态估计(3D human pose estimation in vide)--------Facebook research: VideoPose3D
- html页面宽度1920,网页banner尺寸1920
- yocto 下载代理
- css3新增属性sticky
- 面对ChatGPT的挑战,谷歌CEO怒发Bard调教指南:别慌,咱向来是弯道超车