前言
事情的起因是这样的,我本来在家里刷着朋友圈,突然看到女神发了个朋友圈,原来她被隔离在家,无聊又没有电影看,所以我果断的使用我的python技术,给女神发了过去,女神感动坏了,说在隔离期间只有我关心她,说什么也要隔离完后请我吃饭、逛街。
我一想,都能出去吃饭逛街了,这不妥妥的离幸福不远了吗!
好了,该给大家安利一波了,如何让女神对我转变看法的方法也该教给大家了,希望大家也都顺顺利利脱单!
如何用python爬取电影!
目录
1,数据获取方式
2,爬虫是什么
3,爬虫实现思路
4,代码实战
一.数据获取方式
我们一般去获取数据都是通过浏览器输入网址(B/S架构),在按下回车键的时候,实际上浏览器通过网络做了大量的的操作。
1,通过网络传递发起请求request
2,服务根据请求调用对应处理逻辑
3,查询数据库找到对应数据
4,将数据填充到模板并返回(response)。
二.爬虫是什么
爬虫本质也是一种程序,它会根据指定的条件去互联网上收集数据。
爬虫互获取数据的方式就是通过代码实现浏览器访问服务器的过程,所以我们有必要去理解B/S架构下的数据访问流程。
三.爬虫实现思路
1,确定数据资源地址
2,对该数据地址发起访问请求
3,拿到数据
4,对数据根据需求进行处理
四.代码实战
要求:爬取电影top250的电影名字,评分,引言,详情页并保存
#导入类库
import requests #网络请求库
import cvs #文件格式库
from lxml import etree #数据转换
1,确定数据地址
注意:在获取这种分页页面时候,不要只看第一页的地址。点击第二页拿到完整地址
#导入类库
import requests #网络请求库
import csv #文件格式库
from lxml import etree #数据转换
#确定数据地址 将起始页用占位符,方便后面循环爬取各个页面
2,对数据地址发起访问请求并拿到数据
定义一个函数,功能就是用来获取网页源码
#接收服务器返回过来的数据
response = requests.get(url,headers=headers)
# 防止出现乱码
response.encoding = 'utf-8'
#返回网页源码文本
return response.text
3,对数据进行处理
定义一个函数,用于数据解析处理
#从拿到的源码中解析出每部电影的数据
def getEveryMovie(source):
#将文本解析成html形式
html = etree.HTML(source)
#获取标题
title = eachMoive.xpath('div[@class="hd"]/a/span[@class="title"]/text()') # 标题
# 获取电影的引言
quote = eachMoive.xpath('div[@class="bd"]/p[@class="quote"]/span/text()')
#将字典加入列表
movieList.append(movieDict)
#返回列表
return movieList
循环爬取每一页并写入本地csv文件
# 保存数据
def writeData(movieList)
#循环写入每一行
for each in movieList:
writer.writerow(each)
if __name__ == '__main__':
#保存每一页的结果
movieList = []
# 一共有10页,循环调用爬取保存
for i in range(10):
4, 完整代码
#导入类库
import requests #网络请求库
import csv #文件格式库
from lxml import etree #数据转换
#确定数据地址 将起始页用占位符,方便后面循环爬取各个页面
(网站地址)
# 获取网页源码的函数
def getSource(url):
# headers请求头
headers = {
因为篇幅有限,需要源码的可以私我!!!
最终结果