怎么用python爬取猫眼电影的前100部影片
发表于:2025-12-06 作者:千家信息网编辑
千家信息网最后更新 2025年12月06日,这篇文章主要介绍"怎么用python爬取猫眼电影的前100部影片",在日常操作中,相信很多人在怎么用python爬取猫眼电影的前100部影片问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法
千家信息网最后更新 2025年12月06日怎么用python爬取猫眼电影的前100部影片
这篇文章主要介绍"怎么用python爬取猫眼电影的前100部影片",在日常操作中,相信很多人在怎么用python爬取猫眼电影的前100部影片问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"怎么用python爬取猫眼电影的前100部影片"的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
import requestsimport refrom bs4 import BeautifulSoupfrom lxml import etreeimport tracebackimport csv#定义一个函数获取豆瓣电影第一页def get_one_page(url,code = 'utf-8'):headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.90 Safari/537.36'}try:r = requests.get(url,headers = headers)if r.status_code == 200:r.encoding = codereturn r.textelse:print("相应失败")return Noneexcept:traceback.print_exc()def process(raw):right = raw.split("@")return right[0]def area(a):if a[-1] == ")":return a[16:]else:return Nonedef parse_one_page(slst,html):#正则表达式# rank = re.findall('.*?',html,re.S) # name = re.findall('
(.*?)',html,re.S) # star = re.findall('(.*?)
',html,re.S)# time = re.findall('(.*?)
',html,re.S)# print(time)#正则表达式别忘了加上r,防止转义,否则会报错# 把上面的正则表达式合在一起pattern = re.compile(r'.*?.*?
(.*?).*? (.*?)
.*?(.*?)
.*?<.*?>(.*?)(.*?)
',re.S)items = re.findall(pattern,html)#print(items)for item in items:#yield就相当于return的功能,但也有所不同,yield语句把程序编程迭代器yield {'rank':item[0],'img':process(item[1]),'MovieName':item[2],"star":item[3].strip()[3:],"time":item[4].strip()[5:15],"area":area(item[4].strip()),"score":str(item[5]) + str(item[6])}# return ""def write_to_file(item):with open("猫眼top100.csv",'a',encoding = "utf_8_sig",newline="") as f:#a追加模式 newline区分换行符fieldnames = ['rank','img','MovieName','star','time','area','score']w = csv.DictWriter(f,fieldnames = fieldnames) #字典写入到csv# w.writeheader()w.writerow(item)return ""def down_img(name,url,num):try:response = requests.get(url)with open('C:/Users/HUAWEI/Desktop/py/爬虫/douban/'+name+'.jpg','wb') as f:f.write(response.content)print("第%s张图片下载完毕"%str(num))print("="*20)except Exception as e:print(e.__class__.__name__) #打印错误类型名称def main(i):num = 0url = 'https://maoyan.com/board/4?offset=' + str(i)html = get_one_page(url)#print(html)lst = [] #这个在这里没啥用,但以后若要单独存储某类信息,可是这样写,后面再对应加上函数参数iterator = parse_one_page(lst,html)for a in iterator:#print(a)num += 1write_to_file(a)down_img(a['MovieName'],a['img'],num)# if __name__ == '__main__':# for i in range(10):# main(i)#多线程抓取from multiprocessing import Poolif __name__ == '__main__':pool = Pool()pool.map(main,[i * 10 for i in range(10)])
最终运行结果如下:
保存封面图片

把爬到的信息储存到csv文件中
到此,关于"怎么用python爬取猫眼电影的前100部影片"的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!
猫眼
电影
影片
学习
正则
表达式
函数
图片
更多
帮助
不同
实用
接下来
功能
参数
名称
图片下载
字典
封面
换行符
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
电脑网络安全解决方案
路由器服务器拒绝接入
安徽软件开发企业名录
服务器连接的cost值在哪里看
网络安全信息小组
三明网络安全作业
广州新华互联网科技学校校长
我的世界服务器秘籍
舟山学软件开发设计
态势感知系统所包含的服务器
软件开发在哪个大学学习好
遏制重大安全隐患 数据库
嵌入式系统开发跟软件开发
三级网络技术视频下载
有关的网络安全实验
浪潮服务器与交换机连接方法
高级数据库教材哪一本好
广州追梦空间互联网科技有限公司
求购海康服务器
数据库int后面的括号
倩女幽魂网游服务器
上海动盟网络技术有限公司
泰州应用软件开发培训
网络安全国际资格认证
seo对网站服务器网络要求
浪潮服务器更换同型号主板
禅城软件开发培训有哪些
成都企成云商网络技术有限公司
使用ssh管理远程服务器
读智能网络技术好吗