




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
中国矿业大学计算机学院2019级本科生课程报告课程名称信息内容安全报告题目豆瓣电影热门榜单的爬虫报告时间2022.6.30姓名钟昌甫学号08193050任课教师曹天杰2021-2022(二)《信息内容安全》评分表考核类别考核内容支撑课程目标试题类型与分值比例分数结课考核课程报告(论文综述、设计、实现、写作规范)目标3:掌握信息内容安全的基础知识,针对具体问题和要求选择正确的技术路线,通过在实验环境中进行仿真实验并能根据算法特点进行攻击测试和综合性能评价,得到具有参考价值的结论。课程报告,100%过程考核1.基本概念、原理目标1:掌握信息内容安全的基本概念、分类、原理和相关技术,能够根据课程基本知识对信息内容安全领域出现的问题进行归类、分析、并有初步分析和解决问题的能力。系统演示及解说,30%2.系统设计与分析目标2:掌握信息内容安全处理相关的理论、技术以及健全的评价体系,能够根据具体问题分析算法、设计算法、实现算法并能综合评价算法。PPT讲解与答辩,50%3.基本概念、原理目标1作业或测试,20%结课考核与过程考核比例结课考核:60%过程考核:40%评阅人:2022年7月10日报告摘要关键词:爬虫即网络爬虫,是一种自动获取网页内容的程序。是搜索引擎的重要组成部分,因此搜索引擎优化很大程度上就是针对爬虫而做出的优化。爬取豆瓣电影的热门榜,获取热门榜信息并生成excel文件实现数据可视化
报告正文爬虫的基本工作流程及框架:1.首先选取一部分精心挑选的种子URL;
2.将这些URL放入待抓取URL队列;
3.从待抓取URL队列中取出待抓取在URL,解析DNS,并且得到主机的ip,并将URL对应的网页下载下来,存储进已下载网页库中。此外,将这些URL放进已抓取URL队列。4.分析已抓取URL队列中的URL,分析其中的其他URL,并且将URL放入待抓取URL队列,从而进入下一个循环。人工操作步骤:1.获取电影信息的网页;
2.找到要评分信息的位置;
3.复制、保存我们想要的评分数据。爬虫操作步骤:1.请求并下载电影页面信息;
2.解析并定位评分信息;
3.保存评分数据。下面我们就使用requests和xpath来爬取豆瓣电影中的“电影名”、“导演”、“演员”、“评分”等信息。爬虫前python环境的安装:打开cmd,输入以下指令:pip
install
requestspip
install
lxml豆瓣网未登陆的情况下无法采集数据,requests.get会返回418,418的意思是被网站的反爬程序识别返回的结果,所以采集之前要先登录网站,并且复制网站的User-Agent和Cookie信息,并且把User-Agent和Cookie转化为字典格式,网页鼠标右键——检查——Network——Doc——F5刷新网址(这步很重要)——选择Name下面的‘top250?start=0&filter=’——Headers——Cookie,User-Agent(位于cookie下面)基础班代码(备注都已表明):fromfileinputimportfilenameimportjsonimportrequestsimportpandasfrombs4importBeautifulSoup#网址url='/j/new_search_subjects?sort=U&range=0,10&tags=&start=0'#导航header={'User-Agent':'Mozilla/5.0(WindowsNT10.0;Win64;x64)AppleWebKit/537.36(KHTML,likeGecko)Chrome/102.0.5005.124Safari/537.36Edg/102.0.1245.44'}#目的地response=requests.get(url=url,headers=header)#获取网页源代码baoxian=response.text#转变数据,将数据进行分层data1=json.loads(baoxian)#电影的数量num=len(data1['data'])#设置表头以及规格tou=['directors','rate','title','url']guige=pandas.DataFrame(index=range(num),columns=tou)foriinrange(num):guige.loc[i,'directors']=data1['data'][i]['directors']guige.loc[i,'rate']=data1['data'][i]['rate']guige.loc[i,'title']=data1['data'][i]['title']guige.loc[i,'url']=data1['data'][i]['url']filename='1.xlsx'guige.to_excel(filename)由于本段代码需要人为手动获取每个页面的User-Agent和Cookie信息,故优化代码,通过观察可以看出,豆瓣电影top250榜单总共有10个页面,每个页面有25部电影,总共250部电影。并且,这10个页面的网址有一定的规律性,那就是网址中的
start
位置,第1个页面start=0,第2个页面start=25,第10个页面start=225,可以推测出这10个页面的网址中的start呈现出[0,25,50,75,100,125,150,175,200,225]的序列分布规律。于是可以通过python循环自动生成10个网址,并且把10个网址存放在列表中。代码如下(备注已标注):#导入库importrequestsfrombs4importBeautifulSoupimporttimeimportpandasaspdfromdatetimeimportdate#定义函数,用来处理User-Agent和Cookiedefua_ck():'''网站需要登录才能采集,需要从Network--Doc里复制User-Agent和Cookie,Cookie要转化为字典'''user_agent={'User-Agent':'Mozilla/5.0(WindowsNT10.0;Win64;x64)AppleWebKit/537.36(KHTML,likeGecko)Chrome/85.0.4183.102Safari/537.36'}cookies='ll="118202";bid=FsStcocWuPQ;_vwo_uuid_v2=D65179C81F8EE8041E5F8605041534542|e1ed6add019a5cf6cdb06398640e7fe6;gr_user_id=43e3a769-ff1c-4abe-b1c3-f7d5b28082de;douban-fav-remind=1;push_doumail_num=0;douban-profile-remind=1;viewed="26870407_20438158_10799082_3043970_35174681_26929955_3932365_26886337_27667378_33419041";_pk_ref.100001.4cf6=%5B%22%22%2C%22%22%2C1600420934%2C%22https%3A%2F%2F%2Flink%3Furl%3DuCRtekAbCAhUknlQ9g23ZVQuuGcvpkHuD4DlXS-dKKFXIpgjJwlSGuJm_tBya8dT%26wd%3D%26eqid%3Dc67bc9250001c8ee000000055f647c42%22%5D;_pk_ses.100001.4cf6=*;__utmz=30149280.1600420934.91.83.utmcsr=baidu|utmccn=(organic)|utmcmd=organic;__utma=30149280.1986063068.1597310055.1600241651.1600420934.91;__utmc=30149280;__utmb=223695600420934;__utma=223695111.1305332624.1597310055.1600228709.1600420934.50;__utmz=223695111.1600420934.50.45.utmcsr=baidu|utmccn=(organic)|utmcmd=organic;__utmc=223695111;ap_v=0,6.0;dbcl2="177996890:FXynNkgIDSM";ck=5mGV;__utmt=1;__utmv=30149280.17799;__utmb=301492600420934;push_noty_num=0;_pk_id.100001.4cf6=991c66698d6e616d.1597310055.50.1600420993.1600228708.'#Cookie转化为字典cookies=cookies.split(';')cookies_dict={}foriincookies:cookies_dict[i.split('=')[0]]=i.split('=')[1]returnuser_agent,cookies_dict#定义函数,用于获取豆瓣top250每一个页面的网址defget_urls(n):'''n:页面数量'''urls=[]#用于存放网址num=(n-1)*25+1foriinrange(0,num,25):url='/top250?start={}&filter='.format(i)urls.append(url)returnurls#定义函数,获取每个页面25部电影的链接defget_movies_url(url,u_a,c_d):'''url:每一个页面的链接u_a:User-Agentc_d:cookies'''html=requests.get(url,headers=u_a,#加载User-Agentcookies=c_d)#加载cookiehtml.encoding=html.apparent_encoding#解决乱码的万金油方法ifhtml.status_code==200:print('网页访问成功,代码:{}\n'.format(html.status_code))soup=BeautifulSoup(html.text,'html.parser')#用html.parser来解析网页items=soup.find('ol',class_='grid_view').find_all('li')movies_url=[]foriteminitems:#电影链接movie_href=item.find('div',class_='hd').find('a')['href']movies_url.append(movie_href)returnmovies_urltime.sleep(0.4)#设置时间间隔,0.4秒采集一次,避免频繁登录网页#定义函数,获取每一部电影的详细信息defget_movie_info(href,u_a,c_d):'''href:每一部电影的链接u_a:User-Agentc_d:cookies'''html=requests.get(href,headers=u_a,cookies=c_d)soup=BeautifulSoup(html.text,'html.parser')#用html.parser来解析网页item=soup.find('div',id='content')movie={}#新建字典,存放电影信息#电影名称movie['电影名称']=item.h1.span.text#导演、类型、制片国家/地区、语言、上映时间、片长(部分电影这些信息不全,先全部采集,留待数据分析时处理)movie['电影其他信息']=item.find('div',id='info').text.replace('','').split('\n')foriinmovie['电影其他信息']:if':'ini:movie[i.split(':')[0]]=i.split(':')[1]else:continue#豆瓣评分、评分人数movie['评分']=item.find('div',id='interest_sectl').find('div',class_='rating_selfclearfix').find('strong',class_='llrating_num').textmovie['评分人数']=item.find('div',id='interest_sectl').find('div',class_='rating_selfclearfix').find('div',class_='rating_sum').find('span',property='v:votes').text#电影获奖情况returnmovietime.sleep(0.4)#0.4秒采集一次,避免频繁登录网页#设置主函数,运行上面设置好的函数defmain():'''n:页面数量,总共有10个页面u_a:User-Agentc_d:cookies'''n=10#页面数量,总共有10个页面print('开始采集数据,预计耗时2分钟')#处理User-Agent和Cookielogin=ua_ck()u_a=login[0]c_d=login[1]#获取豆瓣top250每一页的链接,共10页urls=get_urls(n)print('豆瓣10个网页链接已生成!!')#获取每一页25部电影的链接,共250部
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025-2030中国几丁质及其衍生物行业市场发展趋势与前景展望战略研究报告
- 2025至2031年中国旋风袋除尘器行业投资前景及策略咨询研究报告
- 重庆市第一中学2023-2024学年高三下学期2月月考历史试题 含解析
- 河北省保定市部分高中2023-2024学年高三上学期1月期末考化学含解析
- 湖北省咸宁市2022-2023学年高一下学期期末生物试题 无答案
- 提高急诊主任工作的决策支持计划
- 带动学生社团发展计划
- 打造高绩效文化的具体措施计划
- 公司生产工作计划改善产品包装环保性
- 某净化车间施工组织方案
- 高考标准化考场建设方案详细
- 人民医院肿瘤科临床技术操作规范2023版
- 高压-引风机电机检修文件包
- 2023届物理高考二模考前指导
- GB/T 39486-2020化学试剂电感耦合等离子体质谱分析方法通则
- GB/T 11085-1989散装液态石油产品损耗
- GXH-3011A1便携式红外线CO分析仪
- NYT 393-绿色食品 农药使用准则
- 2022年四川省阿坝州中考数学试卷及解析
- 综采工作面末采安全技术措施
- 实验幼儿园大三班一周活动计划表
评论
0/150
提交评论