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