Python网络爬虫实习报告
Python 网络爬虫实习报告 Python 网络爬虫实习报告 0 / 14 Python 网络爬虫实习报告 目录目录 一、选题背景一、选题背景. - 1 -. - 1 - 二、爬虫原理二、爬虫原理. - 1 -. - 1 - 三、爬虫历史和分类三、爬虫历史和分类. . - 1 - - 1 - 四、常用爬虫框架比较四、常用爬虫框架比较. . - 1 - - 1 - 五、数据爬取实战(豆瓣网爬取电影数据)五、数据爬取实战(豆瓣网爬取电影数据). . - 2 - - 2 - 1 分析网页 . - 2- 2 爬取数据 . - 2- 3 数据整理、转换 - 3- 4 数据保存、展示 - 8- 5 技术难点关键点 - 9- 六、总结六、总结 . - 12 - . - 12 - - 0 - / 14 Python 网络爬虫实习报告 一、一、选选题背景题背景 二、二、爬爬虫原理虫原理 三、三、爬爬虫历史和分类虫历史和分类 四、四、常常用爬虫框架比较用爬虫框架比较 ScrapyScrapy 框架框架 Scrapy 框架是一套比较成熟的 Python 爬虫框架, 是使用 Python 开发的快速、高层次的信息爬取框架,可以高效的爬取web 页 面并提取出结构化数据。 Scrapy 应用范围很广,爬虫开发、数据挖掘、 数据监测、自动化测试等。 CrawleyCrawley 框架框架 Crawley 也是 Python 开发出的爬虫框架, 该框架致力于 改变人们从互联网中提取数据的方式。 PortiaPortia 框架框架 Portia 框架是一款允许没有任何编程基础的用户可视化 地爬取网页的爬虫框架。 newspapernewspaper 框架框架 newspaper 框架是一个用来提取新闻、文章以及内容 分析的 Python 爬虫框架。 Python-goosePython-goose 框架框架Python-goose 框架可提取的信息包括文章 主体内容;文章主要图片;文章中嵌入的任 heYoutube/Vimeo 视 频;元描述;元标签 - 1 - / 14 Python 网络爬虫实习报告 五、数据爬取实战(豆瓣网爬取电影数据)五、数据爬取实战(豆瓣网爬取电影数据) 1 1 分析网页分析网页 获取获取htmlhtml源代码源代码 def __getHtmldef __getHtml data [] data [] pageNum 1 pageNum 1 pageSize 0 pageSize 0 try try while pageSize s“ - 6 - / 14 Python 网络爬虫实习报告 data[title][i]data[title][i] f.write“s“ data[rating_num][i]data[rating_num][i] f.write“s“ data[range_num][i]data[range_num][i] f.write“s“ data[rating_people_num][i]data[rating_people_num][i] f.write“s“ data[movie_author][i]data[movie_author][i] f.write““ f.write““ f.write““ f.write““ f.write““f.write““ f.write““ f.write““ f.write““ f.write““ f.write““ f.write““ f.close f.close - 7 - / 14 Python 网络爬虫实习报告 if __name__ __main__if __name__ __main__ datas [] datas [] htmls __getHtml htmls __getHtml for i in rangelenhtmls for i in rangelenhtmls data __getDatahtmls[i] data __getDatahtmls[i] datas.appenddata datas.appenddata __getMoviesdatas__getMoviesdatas 4 4 数据保存、展示数据保存、展示 结果如后图所示 - 8 - / 14 Python 网络爬虫实习报告 5 5 技术难点关键点技术难点关键点 数据爬取实战(搜房网爬取房屋数据)数据爬取实战(搜房网爬取房屋数据) fromfrom bs4 importimport BeautifulSoup importimport requests rep requests.get rep.encoding “gb2312““gb2312“ 设置编码方式 html rep.text soup BeautifulSouphtml, html.parserhtml.parser - 9 - / 14 Python 网络爬虫实习报告 f openF//fang.htmlF//fang.html, ww,encodingutf-8utf-8 f.write““““ f.write“Insert title“Insert title here“here“ f.write““““ f.write““新房成交新房成交 TOP3“TOP3“ f.write““ f.write““房址房址““ f.write““成交量成交量““ f.write““均价均价““ forfor li inin soup.find“ul““ul“,class_“ul02““ul02“.find_all“li““li“ nameli.find“div““div“,class_“pbtext““pbtext“.find“p““p“.text chengjiaoliangli.find“span““span“,class_“red-f3““red-f3“.text trytry junjiali.find“div““div“,class_“ohter““ohter“.find“p““p“,class_“gray-9“gray-9 “ “.text.replace �O, 平方米 exceptexcept Exception asas e junjiali.find“div““div“,class_“gray-9““gray-9“.text.replace �O, - 10 - / 14 Python