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 __getHtml():def __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 range(len(htmls)): for i in range(len(htmls)): data = __getData(htmls[i]) data = __getData(htmls[i]) datas.append(data) datas.append(data) __getMovies(datas)__getMovies(datas) 4 4 数据保存、展示数据保存、展示 结果如后图所示: - 8 - / 14 Python 网络爬虫实习报告 5 5 技术难点关键点技术难点关键点 数据爬取实战(搜房网爬取房屋数据)数据爬取实战(搜房网爬取房屋数据) fromfrom bs4 importimport BeautifulSoup importimport requests rep = requests.get( ) rep.encoding = “gb2312““gb2312“# 设置编码方式 html = rep.text soup = BeautifulSoup(html, html.parser html.parser ) - 9 - / 14 Python 网络爬虫实习报告 f = open( F://fang.html F://fang.html , w w ,encoding= utf-8 utf-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“): name=li.find(“div““div“,class_=“pbtext““pbtext“).find(“p““p“).text chengjiaoliang=li.find(“span““span“,class_=“red-f3““red-f3“).text trytry: junjia=li.find(“div““div“,class_=“ohter““ohter“).find(“p““p“,class_=“gray-9“gray-9 “ “)#.text.replace( �O , 平方米 ) exceptexcept Exception asas e: junjia=li.find(“div““div“,class_=“gray-9““gray-9“)#.text.replace( �O , - 10 - / 14 Python