Python实现猫眼电影网站视频爬取,附代码

学习Python是否感到过度劳累,四肢乏力,腰腿酸痛?这是没找到学习方法的表现!都知道编程是环环相扣的吧 如果基础没学好的话 那么代码你是肯定看不懂的~每个技术大牛都是从基础慢慢的提升上去的,基础知识越深以后的发展越牛!


这里还要注意:不管你是刚学Python还是想找python高薪工作,记住:项目实战永远是核心,如果你没有python入门到高级实战视频教程,可以关注我,后台私信我 ‘py’ 自动获取最新python教程资料!还有老司机解答哦!
思路:1.利用requests去过去网站上的前端源代码 在源代码中存在我们想要获取的数据2.在源代码中筛选出我们想要的数据 数据筛选 bs43.把筛选出来的数据存放到文件中 保存数据爬虫的原理:模拟浏览器向服务器发送一个get()请求,服务器接收到请求之后返回相应的数据给爬虫代码get() 单纯的拿数据post() 在拿数据的过程中还能修改数据

对于初学者在学习Python过程中有不懂的或是缺少这方面学习教程的可以加一下我建的Python技术的学习裙;九三七六六七五零九,一起学习。群里有相关开发工具,学习教程,每天还有专业的老司机在线直播分享知识与技术答疑解惑!

项目源码

<code> 1 # pip install bs4 2 from bs4 import BeautifulSoup 3 4 # 网络请求包 它能获取到网站上的前端源代码 5 6 # pip install requests 7 import requests 8 9 # json 在文件处理中 python没有办法把一个对象写入文件中 字典就是python中的一个对象 10 import json 11 12 ''' 13 在python中的表现形式 14 基本数据类型 15 列表 16 字典 17 集合 18 元组 19 20 字典 {'name': '未衬'} 运用在后端 21 json {"name": "未衬"} 运用在前端 22 ''' 23 24 ''' 25 思路: 26 1.利用requests去过去网站上的前端源代码 在源代码中存在我们想要获取的数据 27 2.在源代码中筛选出我们想要的数据 数据筛选 bs4 28 3.把筛选出来的数据存放到文件中 保存数据 29 30 爬虫的原理: 31 模拟浏览器向服务器发送一个get()请求,服务器接收到请求之后返回相应的数据给爬虫代码 32 33 get() 单纯的拿数据 34 post() 在拿数据的过程中还能修改数据 35 ''' 36 # 这种数据结构是一种典型的字典格式 37 # 作用 定义浏览器 38 headers = { 39 'User-Agent': 40 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36' 41 } 42 43 44 # 获取请求页面 45 ''' 46 url 是一种形式参数 47 我们去调用getPage()这个函数的时候要去给这个url做赋值 48 ''' 49 50 51 def getPage(url): 52 # 异常处理 保证我们的程序不会因为网络原因导致程序崩溃 53 try: 54 response = requests.get(url, headers=headers) 55 if response.status_code == 200: 56 return response.text 57 else: 58 return None 59 except Exception: 60 return None 61 62 63 # 获取电影信息 pip install lxml 64 def getInfo(html): 65 # 使用BeautifulSoup匹配电影的索引 海报 电影名 主演 评分 66 soup = BeautifulSoup(html, 'lxml') 67 items = soup.select('dd') 68 69 for item in items: 70 index = item.find(name='i', class_='board-index').get_text() 71 name = item.find(name='p', class_='name').get_text() 72 start = item.find(name='p', class_='star').get_text().strip() 73 time = item.find(name='p', class_='releasetime').get_text() 74 score = item.find(name='p', class_='score').get_text() 75 76 # 生成器 77 78 ''' 79 迭代器 80 生成器 81 装饰器 82 ''' 83 84 # 可以把yield看成return 就是专门返回数据的 yield有一种特性 惰性机制 85 # 它因为这种机制 可以实现节约内存的效果 86 yield { 87 'index': index, 88 'name': name, 89 'start': start, 90 'time': time, 91 'score': score 92 } 93 94 # 写入文件 95 def writeData(field): 96 # 文件处理 97 with open('maoyan_info.txt', 'a', encoding='utf-8') as f: 98 f.write(json.dumps(field, ensure_ascii=False) + '\n') 99 100 101 # 入口函数 102 if __name__ == "__main__": 103 for num in [i * 10 for i in range(11)]: 104 url = 'https://maoyan.com/board/4?offset=' + str(num) 105 html = getPage(url) 106 107 for item in getInfo(html): 108 print(item) 109 writeData(item) 110 111 112 '''/<code>

代码不要直接复制,要自己动手敲,学习Python一定要多动手的,最后送福利,如果你没有python入门到高级实战视频教程,可以关注我,后台私信我 ‘py’ 自动获取最新python教程资料!还有老司机解答哦!

本文的文字及图片来源于网络加上自己的想法,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理。