网站大量收购闲置独家精品文档,联系QQ:2885784924

网络空间安全概论 实验7网络爬虫 爬取TOP250电影.docx

网络空间安全概论 实验7网络爬虫 爬取TOP250电影.docx

  1. 1、本文档共8页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

题目概述

实验题目:实验七网络爬虫。

实验要求与目的:熟悉爬虫工作原理,用相关的python工具包实现网络爬虫。

实验内容:爬取TOP250电影的所有短评以及电影的相关数据。爬取TOP250豆瓣电影所有短评,以及电影的相关信息,包括电影类型,上映时间,以及演员列表等信息。

开发平台及开源工具

本次信息检索实验使用的是python语言,开发工具为PyCharm2021.3,操作系统为Windows10和Ubuntu18.04服务器,第三方库均使用pip安装。

本次实验使用的第三方库主要有selenium(自动登录与信息爬取)、matplotlib(词频统计可视化)、numpy(矩阵处理)、jieba(分词)等。

详细设计

文件说明

douban_movies.py

主要就是构造TOP250排行榜每一页的链接,然后解析每一页的电影名和电影页链接,然后发出爬取电影页信息的Request,之后利用xpath或者pyquery正常解析网页信息即可。

defstart_requests(self):

base_url=/top250?start=$filter=

forstartinrange(10):

url=str.replace(base_url,$,str(start*25))

(url)

yieldRequest(url,callback=self.parse_top250)

defparse_top250(self,response):

top250_movie_info_item=TOP250MovieInfoItem()

html=response.text

doc=pq(html)

all_movies=doc(#contentdivdiv.articleollidiv)

formovieinall_movies.items():

sleep_time=random.uniform(0.5,1)

time.sleep(sleep_time)

movie_link=movie(div.hda).attr(href)

title=movie(div.hdaspan.title).text()

top250_movie_info_item[title]=title

top250_movie_info_item[movie_link]=movie_link

(top250_movie_info_item)

yieldtop250_movie_info_item

#然后发出爬取每个movie的具体信息的request

(movie_link)

yieldRequest(movie_link,callback=self.parse_movie_item)

pipeline.py

#因为在process_item中会根据不同的Item进行不同的查询防止爬取重复的信息,所以对不同的collection设置了不同的索引,毕竟最后爬取到的短评有33万多条,设置一下索引对速度还是有提升的

defopen_spider(self,spider):

self.client=pymongo.MongoClient(self.mongo_uri)

self.db=self.client[self.mongo_db]

self.db[TOP250MovieInfoItem.collection].create_index([(movie_link,pymongo.ASCENDING)])

self.db[MovieInfoItem.collection].create_index([(movie_link,pymongo.ASCENDING)])

self.db[CommentInfoItem.collection].create_index([(commenter_link,pymongo.ASCENDING),(commen

文档评论(0)

balala11 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档