谈到爬虫大家可能对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爬取猫眼电影相关推荐

  1. requests爬取猫眼电影403错误解决方法

    原代码如下: import requests from requests.exceptions import RequestExceptiondef one_page_code(url):try:pa ...

  2. 利用正则表达式爬取猫眼电影TOP100信息

    本文利用requests库和正则表达式爬取了猫眼电影TOP100电影信息,并将电影封面和标题.主演等文字信息保存在了本地.本文完整代码链接:https://github.com/iapcoder/Ma ...

  3. Python语言实现用requests和正则表达式方法爬取猫眼电影排行榜前100部电影

    #爬取猫眼电影排名前100的电影 import requests #电脑向服务器发送的请求库 from requests.exceptions import RequestException impo ...

  4. 爬虫从头学之Requests+正则表达式爬取猫眼电影top100

    爬取思路 当我们想要爬取一个页面的时候,我们要保证思路清晰,爬虫的思路分四个步骤,发起请求,获取响应内容,解析内容,存储内容.根据这四个内容我们的思路就很清晰.以下为具体步骤 使用requests库爬 ...

  5. 使用Requests库+re库爬取猫眼电影评分

    使用Requests库+re库爬取猫眼电影评分 作者:小胖 0x1: 分析 在简单的翻页中,我们可以知道.网页涵盖了以下几个规律 1.offset参数的值是除以30就是当前的页面 2.每个页面只有30 ...

  6. python战反爬虫:爬取猫眼电影数据 (一)(Requests, BeautifulSoup, MySQLdb,re等库)

    姓名:隋顺意 博客:Sui_da_xia 微信名:世界上的霸主 本篇文章未涉及猫眼反爬,主要介绍爬取无反爬内容,战反爬内容请去 python战反爬虫:爬取猫眼电影数据 (二)(Requests, Be ...

  7. python战反爬虫:爬取猫眼电影数据 (二)(Requests, BeautifulSoup, MySQLdb,re等库)

    姓名:隋顺意 博客:Sui_da_xia 微信名:世界上的霸主 本文主要介绍破解反爬,可以先去上一篇观看爬取无反爬内容 python战反爬虫:爬取猫眼电影数据 (一)(Requests, Beauti ...

  8. python爬虫 requests+bs4爬取猫眼电影 傻瓜版教程

    python爬虫 requests+bs4爬取猫眼电影 傻瓜版教程 前言 一丶整体思路 二丶遇到的问题 三丶分析URL 四丶解析页面 五丶写入文件 六丶完整代码 七丶最后 前言 大家好我是墨绿 头顶总 ...

  9. python爬虫,爬取猫眼电影1(正则表达式)

    本文用正则.xpath.beautifulsoup.css.pyquery几种不同的方式,爬取猫眼电影.只是记录过程.比较乱. 猫眼电影现在也添加了一些反爬虫机制,如果直接用requests可能会40 ...

最新文章

  1. SoapUI进行REST请求,POST方法提交到数据库的数据乱码问题
  2. 批量 kill mysql 中运行时间长的sql
  3. Linux 操作系统原理 — 文件系统 —文件
  4. CTFshow 命令执行 web50
  5. PHP常用功能块_错误和异常处理 — php(32)
  6. json中含有Unicode的处理办法 C#
  7. Jenkins自动部署SpringCloud项目
  8. FastDFS原理系列文章
  9. 【零售知识】商品库存成本计算的几种方式
  10. 何恺明团队新作ViTDet:用于目标检测的视觉Transformer主干网络
  11. 杭州出租车改革何以值得肯定
  12. Synopsys ICC 笔记
  13. 剑指 Offer 61-68
  14. python椭圆特征识别_opencv python中的椭圆检测
  15. 自动弹窗被拦截 html,chrome拦截弹窗问题的两种解决方式
  16. 2021-08-26某宝补蛋需要注意什么?
  17. 青少年编程等级考试scratch真题答题考试系统源码网站
  18. ue4 角色奔跑/冲刺/蹲下 /蹲走 动作切换蓝图
  19. Emacs进阶之eww浏览器
  20. 洞悉netfilter_洞悉网络数据包捕获

热门文章

  1. c#为什么用的人很少
  2. android游戏基址,Android上可执行ELF文件中的段不能有基址
  3. windows驱动开发推荐书籍
  4. 大数据相关职位的知识储备与系统学习路线规划以及所需时间
  5. 高级WEB前端游戏开发视频教程
  6. 视频中的3D人体姿态估计(3D human pose estimation in vide)--------Facebook research: VideoPose3D
  7. html页面宽度1920,网页banner尺寸1920
  8. yocto 下载代理
  9. css3新增属性sticky
  10. 面对ChatGPT的挑战,谷歌CEO怒发Bard调教指南:别慌,咱向来是弯道超车