Python爬虫(三):爬取猫眼电影网经典电影TOP100信息并存入本地Markdown文件(下)

本文主要是介绍Python爬虫(三):爬取猫眼电影网经典电影TOP100信息并存入本地Markdown文件(下),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!


运行环境:Python3.6.2Pycharm2017.2
附此爬虫代码GitHub地址:https://github.com/IMWoolei/MaoYanMovies

==>【效果链接】


上一篇博客【链接】

正文

Markdown作为一个易上手的标记书写语言,能够提供高效清晰的书写板是,一直是我很喜欢的书写工具。
Python的第三方库中提供了Markdown模块,用于Markdown的书写,以及提供转html等功能。
实际上Markdown是一个纯文本的标记语言,其文件的拓展名为*.md,我们甚至可以直接使用记事本书写。上一篇博客中我们得到了经典TOP100的电影信息,我们将其信息写入到Markdown文件中,使其更好的可视化。因为没有将其转为html文件,所以在这次代码中就没有使用到markdown模块,而是直接将其写入拓展名为*.md的文本文件中。

完整代码

import requests
import re
import jsonheaders = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.94 Safari/537.36','Referer': 'http://maoyan.com/board/4?offset=0'}def getPage(url):try:response = requests.get(url, headers=headers)# print(response.status_code)if response.status_code == 200:return response.textelse:return Noneexcept Exception:return Nonedef getInfo(html):# 正则匹配出电影的索引、海报、电影名、主演、评分pattern = re.compile('<dd>.*?<i class="board-index.*?>(\d+)</i>.*?<a href="(.*?)".*?<img data-src="(.*?)".*?<p class="name">''<a.*?>(.*?)</a>.*?<p class="star">(.*?)</p>.*?''<p class="releasetime">(.*?)</p>.*?<i class="integer">(.*?)</i><i class="fraction">(.*?)</i>.*?</dd>',re.S)items_list = re.findall(pattern, html)for item in items_list:yield {'index': item[0],'link': 'http://maoyan.com' + item[1],'image': item[2],'name': item[3],'actor': item[4].strip()[3:],'time': item[5].strip()[5:],'score': item[6] + item[7]}def writeMarkdown(field):with open('Movies_Info_MD.md', mode='a', encoding='utf-8') as f:info_dict = json.dumps(field, ensure_ascii=False)print('----->' + info_dict)f.write('## No:' + field['index'] + '\n')  # 写入排名f.write('![image](' + field['image'] + ')\n')  # 写入海报,注意Markdown中插入图片的语法f.write('### **' + field['name'] + '** \n')  # 写入影片名f.write('#### **主演**:' + field['actor'] + '\n')  # 写入主演f.write('#### **上映时间**:' + field['time'] + '\n')  # 写入上映时间f.write('#### **评分**:' + field['score'] + '\n')  # 写入评分f.write('[了解更多...](' + field['link'] + ')\n\n')f.write('------\n')  # 写入分割线,在Markdown语法中至少三个'-'以上才能构成分割线f.close()if __name__ == '__main__':for num in [i * 10 for i in range(11)]:url = 'http://maoyan.com/board/4?offset=' + str(num)html = getPage(url)for item in getInfo(html):# print(item)writeMarkdown(item)

运行效果

markdown

除此之外,我将生成的Markdown文件导入到了我的CSDN博客中【链接】


这篇关于Python爬虫(三):爬取猫眼电影网经典电影TOP100信息并存入本地Markdown文件(下)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/414986

相关文章

基于Python编写一个git自动上传的脚本(打包成exe)

《基于Python编写一个git自动上传的脚本(打包成exe)》这篇文章主要为大家详细介绍了如何基于Python编写一个git自动上传的脚本并打包成exe,文中的示例代码讲解详细,感兴趣的小伙伴可以跟... 目录前言效果如下源码实现利用pyinstaller打包成exe利用ResourceHacker修改e

Python在二进制文件中进行数据搜索的实战指南

《Python在二进制文件中进行数据搜索的实战指南》在二进制文件中搜索特定数据是编程中常见的任务,尤其在日志分析、程序调试和二进制数据处理中尤为重要,下面我们就来看看如何使用Python实现这一功能吧... 目录简介1. 二进制文件搜索概述2. python二进制模式文件读取(rb)2.1 二进制模式与文本

Python中Tkinter GUI编程详细教程

《Python中TkinterGUI编程详细教程》Tkinter作为Python编程语言中构建GUI的一个重要组件,其教程对于任何希望将Python应用到实际编程中的开发者来说都是宝贵的资源,这篇文... 目录前言1. Tkinter 简介2. 第一个 Tkinter 程序3. 窗口和基础组件3.1 创建窗

Django调用外部Python程序的完整项目实战

《Django调用外部Python程序的完整项目实战》Django是一个强大的PythonWeb框架,它的设计理念简洁优雅,:本文主要介绍Django调用外部Python程序的完整项目实战,文中通... 目录一、为什么 Django 需要调用外部 python 程序二、三种常见的调用方式方式 1:直接 im

Python字符串处理方法超全攻略

《Python字符串处理方法超全攻略》字符串可以看作多个字符的按照先后顺序组合,相当于就是序列结构,意味着可以对它进行遍历、切片,:本文主要介绍Python字符串处理方法的相关资料,文中通过代码介... 目录一、基础知识:字符串的“不可变”特性与创建方式二、常用操作:80%场景的“万能工具箱”三、格式化方法

浅析python如何去掉字符串中最后一个字符

《浅析python如何去掉字符串中最后一个字符》在Python中,字符串是不可变对象,因此无法直接修改原字符串,但可以通过生成新字符串的方式去掉最后一个字符,本文整理了三种高效方法,希望对大家有所帮助... 目录方法1:切片操作(最推荐)方法2:长度计算索引方法3:拼接剩余字符(不推荐,仅作演示)关键注意事

python版本切换工具pyenv的安装及用法

《python版本切换工具pyenv的安装及用法》Pyenv是管理Python版本的最佳工具之一,特别适合开发者和需要切换多个Python版本的用户,:本文主要介绍python版本切换工具pyen... 目录Pyenv 是什么?安装 Pyenv(MACOS)使用 Homebrew:配置 shell(zsh

C#如何在Excel文档中获取分页信息

《C#如何在Excel文档中获取分页信息》在日常工作中,我们经常需要处理大量的Excel数据,本文将深入探讨如何利用Spire.XLSfor.NET,高效准确地获取Excel文档中的分页信息,包括水平... 目录理解Excel中的分页机制借助 Spire.XLS for .NET 获取分页信息为什么选择 S

Python自动化提取多个Word文档的文本

《Python自动化提取多个Word文档的文本》在日常工作和学习中,我们经常需要处理大量的Word文档,本文将深入探讨如何利用Python批量提取Word文档中的文本内容,帮助你解放生产力,感兴趣的小... 目录为什么需要批量提取Word文档文本批量提取Word文本的核心技术与工具安装 Spire.Doc

springboot3.x使用@NacosValue无法获取配置信息的解决过程

《springboot3.x使用@NacosValue无法获取配置信息的解决过程》在SpringBoot3.x中升级Nacos依赖后,使用@NacosValue无法动态获取配置,通过引入SpringC... 目录一、python问题描述二、解决方案总结一、问题描述springboot从2android.x