Python网络爬虫实习报告-python实习报告
Python 网络爬虫实习陈述之邯郸勺丸创作 目录目录 一、选题布景一、选题布景- 2 -- 2 - 二、爬虫原理二、爬虫原理- 2 -- 2 - 三、爬虫历史和分类三、爬虫历史和分类- 2 -- 2 - 错误未指定书签。 错误未指定书签。 分析网页-1- 2 爬取数据-7- 3 数据整理、转换-10- 4 数据保管、展示-12- 5 技术难点关键点-12- 六、总结六、总结- 14 -- 14 - 一、一、选选题布景题布景 二、二、爬爬虫原理虫原理 三、三、爬爬虫历史和分类虫历史和分类 四、四、经经常使用爬虫框架比较常使用爬虫框架比较 Scrapy 框架Scrapy 框架是一套比较成熟的 Python 爬虫框架,是使用 Python 开 发的快速、高条理的信息爬取框架,可以高效的爬取 web 页面并提取出结构化数 据。Scrapy 应用范围很广,爬虫开发、数据挖掘、数据监测、自动化测试等。 Crawley 框架Crawley 也是 Python 开发出的爬虫框架,该框架致力于改变人们 从互联网中提取数据的方式。 Portia 框架Portia 框架是一款允许没有任何编程基础的用户可视化地爬取网页 的爬虫框架。 newspaper 框架newspaper 框架是一个用来提取新闻、文章以及内容分析的 Python 爬虫框架。 Python-goose 框架Python-goose 框架可提取的信息包含文章主体内 容;文章主要图片;文章中嵌入的任 heYoutube/Vimeo 视频;元描述; 元标签 五、数据爬取实战(豆瓣网爬取电影数据)五、数据爬取实战(豆瓣网爬取电影数据) 1 1 分析网页分析网页 获取 html 源代码 def __getHtml data [] pageNum 1 pageSize 0 try while pageSize 125 headers {User-AgentMozilla/5.0 Windows NT 6.1 AppleWebKit/537.11 KHTML, like Gecko Chrome/23.0.1271.64 Safari/537.11, RefererNone 注意如果依然不克不及抓取的话,这里可以设置抓取网站的 host } opener urllib.request.build_opener opener.addheaders [headers] url “ strpageSize “filter“ strpageNum data[htmls i ]urllib.request.urlopenurl.read.decode“utf-8“ data.appendurllib.request.urlopenurl.read.decode“utf-8“ pageSize 25 pageNum 1 printpageSize, pageNum except Exception as e raise e return data 2 2 爬取数据爬取数据 def __getDatahtml title [] 电影题目 rating_num [] 评分 range_num [] 排名 rating_people_num [] 评价人数 movie_author [] 导演 data {} bs4 解析 html soup BeautifulSouphtml, “html.parser“ for li in soup.find“ol“, attrs{class grid_view}.find_all“li“ title.appendli.find“span“, class_“title“.text rating_num.appendli.find“div“, class_star.find“span“, class_rating_num.text range_num.appendli.find“div“, class_pic.find“em“.text spans li.find“div“, class_star.find_all“span“ for x in rangelenspans if x 2 pass else rating_people_num.appendspans[x].string[-lenspans[x].string-3] str li.find“div“, class_bd.find“p“, class_.text.lstrip index str.find“主“ if index -1 index str.find“.“ printli.find“div“, class_pic.find“em“.text if li.find“div“, class_pic.find“em“.text 210 index 60 print“aaa“ printstr[4index] movie_author.appendstr[4index] data[title] title data[rating_num] rating_num data[range_num] range_num data[rating_people_num] rating_people_num data[movie_author] movie_author return data 3 3 数据整理、转换数据整理、转换 def __getMoviesdata f openF//douban_movie.html, w,encodingutf-8 f.write““ f.write“Insert title here“ f.write““ f.write“爬取豆瓣电影“ f.write“ 作者刘文斌“ f.write“ 时间“ nowtime ““ f.write““ f.write““ f.write““ f.write““ f.write“电影“ f.write“评分“ f.write“排名“ f.write“评价人数“ f.write“导演“ f.write““ f.write““ f.write““ for data in datas for i in range0, 25 f.write““ f.write“s“ data[title]