|
英杰社区https://bbs.csdn.net/topics/617804998一、背景 近年来,Python在数据爬取和处理方面的应用越来越广泛。本文将介绍一个基于Python的爬虫程序,用于抓取豆瓣电影Top250的相关信息,并将其保存为Excel文件。 程序包含以下几个部分: 导入模块:程序导入了BeautifulSoup、re、urllib.request、urllib.error、xlwt等模块。 定义函数:geturl(url):接收一个URL参数,返回该URL页面内容。getdata(baseurl):接收一个基础URL参数,遍历每一页的URL,获取电影信息数据,以列表形式返回。savedata(datalist,savepath):接收电影信息数据和保存路径参数,将数据保存到Excel文件中。二、导入必要的模块: 代码首先导入了需要使用的模块:requests、lxml和csv。importrequestsfromlxmlimportetreeimportcsv 如果出现模块报错 进入控制台输入:建议使用国内镜像源pipinstall模块名称-ihttps://mirrors.aliyun.com/pypi/simple 我大致罗列了以下几种国内镜像源:清华大学https://pypi.tuna.tsinghua.edu.cn/simple阿里云https://mirrors.aliyun.com/pypi/simple/豆瓣https://pypi.douban.com/simple/百度云https://mirror.baidu.com/pypi/simple/中科大https://pypi.mirrors.ustc.edu.cn/simple/华为云https://mirrors.huaweicloud.com/repository/pypi/simple/腾讯云https://mirrors.cloud.tencent.com/pypi/simple/ 三、定义了函数来解析每个电影的信息: 设置了请求头部信息,以模拟浏览器的请求,函数返回响应数据的JSON格式内容。defgetSource(url):#反爬填写headers请求头headers={'User-Agent':'Mozilla/5.0(WindowsNT10.0;Win64;x64)AppleWebKit/537.36(KHTML,likeGecko)Chrome/79.0.3945.88Safari/537.36'}response=requests.get(url,headers=headers)#防止出现乱码response.encoding='utf-8'#print(response.text)returnresponse.text'运行运行 如何获取请求头: 火狐浏览器:打开目标网页并右键点击页面空白处。选择“检查元素”选项,或按下快捷键Ctrl+Shift+C(Windows)在开发者工具窗口中,切换到“网络”选项卡。刷新页面以捕获所有的网络请求。在请求列表中选择您感兴趣的请求。在右侧的“请求标头”或“RequestHeaders”部分,即可找到请求头信息。 将以下请求头信息复制出来即可 四、源代码: 该爬虫程序使用了Python的第三方库BeautifulSoup和正则表达式模块,通过解析HTML页面并进行匹配,提取了电影详情链接、图片链接、影片中文名、影片外国名、评分、评价数、概述以及相关信息等数据,最后将这些数据保存到Excel文件中。frombs4importBeautifulSoupimportre#正则表达式,进行文字匹配importurllib.request,urllib.error#指定URL,获取网页数据importxlwt#进行excel操作defmain():baseurl="https://movie.douban.com/top250?start="datalist=getdata(baseurl)savepath=".\\豆瓣电影top250.xls"savedata(datalist,savepath)#compile返回的是匹配到的模式对象findLink=re.compile(r'
|
|