欢迎来到天天文库
浏览记录
ID:26253568
大小:226.45 KB
页数:13页
时间:2018-11-25
《python网络爬虫实习报告》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、Python网络爬虫实习报告Python网络爬虫实习(报告)目录一、选题背景-2-二、爬虫原理-2-三、爬虫历史和分类-2-四、常用爬虫框架比较-5-五、数据爬取实战(豆瓣网爬取电影数据)-6-1分析网页-6-2爬取数据-7-3数据整理、转换-10-4数据保存、展示-12-5技术难点关键点-12-六、总结-14--11-Python网络爬虫实习(报告)选题背景一、爬虫原理二、爬虫历史和分类三、常用爬虫框架比较Scrapy框架:Scrapy框架是一套比较成熟的Python爬虫框架,是使用Python开发的快
2、速、高层次的信息爬取框架,可以高效的爬取web页面并提取出结构化数据。Scrapy应用范围很广,爬虫开发、数据挖掘、数据监测、自动化测试等。Crawley框架:Crawley也是Python开发出的爬虫框架,该框架致力于改变人们从互联网中提取数据的方式。Portia框架:Portia框架是一款允许没有任何编程基础的用户可视化地爬取网页的爬虫框架。newspaper框架:newspaper框架是一个用来提取新闻、文章以及内容分析的Python爬虫框架。Python-goose框架:Python-goose框
3、架可提取的信息包括:<1>文章主体内容;<2>文章主要图片;<3>文章中嵌入的任heYoutube/Vimeo视频;<4>元描述;<5>元标签-11-Python网络爬虫实习(报告)五、数据爬取实战(豆瓣网爬取电影数据)1分析网页#获取html源代码def__getHtml():data=[]pageNum=1pageSize=0try:while(pageSize<=125):#headers={'User-Agent':'Mozilla/5.0(WindowsNT6.1)AppleWebKit/537
4、.11(KHTML,likeGecko)Chrome/23.0.1271.64Safari/537.11',#'Referer':None#注意如果依然不能抓取的话,这里可以设置抓取网站的host#}#opener=urllib.request.build_opener()#opener.addheaders=[headers]url="https://movie.douban.com/top250?start="+str(pageSize)+"&filter="+str(pageNum)#data['h
5、tml%s'%i]=urllib.request.urlopen(url).read().decode("utf-8")-11-Python网络爬虫实习(报告)data.append(urllib.request.urlopen(url).read().decode("utf-8"))pageSize+=25pageNum+=1print(pageSize,pageNum)exceptExceptionase:raiseereturndata2爬取数据def__getData(html):title=[]
6、#电影标题#rating_num=[]#评分range_num=[]#排名#rating_people_num=[]#评价人数movie_author=[]#导演data={}#bs4解析htmlsoup=BeautifulSoup(html,"html.parser")forliinsoup.find("ol",attrs={'class':'grid_view'}).find_all("li"):-11-Python网络爬虫实习(报告)title.append(li.find("span",class
7、_="title").text)#rating_num.append(li.find("div",class_='star').find("span",class_='rating_num').text)range_num.append(li.find("div",class_='pic').find("em").text)#spans=li.find("div",class_='star').find_all("span")#forxinrange(len(spans)):#ifx<=2:#pass#e
8、lse:#rating_people_num.append(spans[x].string[-len(spans[x].string):-3])str=li.find("div",class_='bd').find("p",class_='').text.lstrip()index=str.find("主")if(index==-1):index=str.find("...")print(li.find("div",class
此文档下载收益归作者所有