Python网络爬虫实习报告.docx
- 文档编号:4961073
- 上传时间:2022-12-12
- 格式:DOCX
- 页数:6
- 大小:16.68KB
Python网络爬虫实习报告.docx
《Python网络爬虫实习报告.docx》由会员分享,可在线阅读,更多相关《Python网络爬虫实习报告.docx(6页珍藏版)》请在冰豆网上搜索。
Python网络爬虫实习报告
Preparedon21November2021
Python网络爬虫实习报告
Python网络爬虫实习报告
一、
选题背景
二、爬虫原理
三、爬虫历史和分类
四、常用爬虫框架比较
Scrapy框架:
Scrapy框架是一套比较成熟的Python爬虫框架,是使用Python开发的快速、高层次的信息爬取框架,可以高效的爬取web页面并提取出结构化数据。
Scrapy应用范围很广,爬虫开发、数据挖掘、数据监测、自动化测试等。
Crawley框架:
Crawley也是Python开发出的爬虫框架,该框架致力于改变人们从互联网中提取数据的方式。
Portia框架:
Portia框架是一款允许没有任何编程基础的用户可视化地爬取网页的爬虫框架。
newspaper框架:
newspaper框架是一个用来提取新闻、文章以及内容分析的Python爬虫框架。
Python-goose框架:
Python-goose框架可提取的信息包括:
<1>文章主体内容;<2>文章主要图片;<3>文章中嵌入的任heYoutube/Vimeo视频;<4>元描述;<5>元标签
五、数据爬取实战(豆瓣网爬取电影数据)
1分析网页
#获取html源代码
def__getHtml():
data=[]
pageNum=1
pageSize=0
try:
while(pageSize<=125):
#headers={'User-Agent':
'Mozilla/(WindowsNTAppleWebKit/(KHTML,likeGecko)Chrome/Safari/',
#'Referer':
None#注意如果依然不能抓取的话,这里可以设置抓取网站的host
#}
#opener=
#=[headers]
url=""+str(pageSize)+"&filter="+str(pageNum)
#data['html%s'%i]="utf-8")
"utf-8"))pageSize+=25pageNum+=1print(pageSize,pageNum)exceptExceptionase:
raiseereturndata
2爬取数据
def__getData(html):
title=[]#电影标题
#rating_num=[]#评分
range_num=[]#排名
#rating_people_num=[]#评价人数
movie_author=[]#导演
data={}
#bs4解析html
soup=BeautifulSoup(html,"")
forliin("ol",attrs={'class':
'grid_view'}).find_all("li"):
("span",class_="title").text)
#("div",class_='star').find("span",class_='rating_num').text)
("div",class_='pic').find("em").text)
#spans=("div",class_='star').find_all("span")
#forxinrange(len(spans)):
#ifx<=2:
#pass
#else:
#(spans[x].string[-len(spans[x].string):
-3])
str=("div",class_='bd').find("p",class_='').()
index=("主")
if(index==-1):
index=("...")
print("div",class_='pic').find("em").text)
if("div",class_='pic').find("em").text==210):
index=60
#print("aaa")
#print(str[4:
index])
(str[4:
index])
data['title']=title
#data['rating_num']=rating_num
data['range_num']=range_num
#data['rating_people_num']=rating_people_num
data['movie_author']=movie_authorreturndata
3数据整理、转换
def__getMovies(data):
f=open(','w',encoding='utf-8')
("")
("
("
")("
爬取豆瓣电影
")("
作者:
刘文斌")
("
时间:
"+nowtime+"")
("
")
("
("") (" (" #(" (" #(" (" (" ("") ") ") ")
("
")fordataindatas:
foriinrange(0,25):
("
(" orange;text-align: center'>%s"%data['title'][i]) #(" blue;text-align: center'>%s"%data['rating_num'][i]) (" red;text-align: center'>%s"%data['range_num'][i]) #(" blue;text-align: center'>%s"%data['rating_people_num'][i]) (" black;text-align: center'>%s"%data['movie_author'][i]) ("
("
")("")
("")
("")
("")
()
if__name__=='__main__':
datas=[]
htmls=__getHtml()
foriinrange(len(htmls)):
data=__getData(htmls[i])
(data)
__getMovies(datas)
4数据保存、展示
结果如后图所示:
5技术难点关键点
数据爬取实战(搜房网爬取房屋数据)
frombs4importBeautifulSoup
importrequests
rep=('')
="gb2312"#设置编码方式
html=
soup=BeautifulSoup(html,'')
f=open(','w',encoding='utf-8')
("")
("
("
")("
新房成交TOP3
(" (" (" ("") ") ")房址
")成交量
均价
forliin("ul",class_="ul02").find_all("li"):
name=("div",class_="pbtext").find("p").text
chengjiaoliang=("span",class_="red-f3").text
try:
junjia=("div",class_="ohter").find("p",class_="gray-9")#.('O','平方米')
exceptExceptionase:
junjia=("div",class_="gray-9")#.('O','平方米')
("
("
("
print(name)
("")
("")
六、总结
教师评语:
成绩:
指导教师:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Python 网络 爬虫 实习 报告