Python 網絡爬蟲實習報告
目錄 一、選題背景 ........................................................... 錯誤!未定義書簽。
理 二、爬蟲原理。簽書義定未!誤錯?
三、爬蟲歷史與分類 ................................................ 錯誤!未定義書簽。
較 四、常用爬蟲框架比較。簽書義定未!誤錯?
五、數據爬取實戰( 豆瓣 網 爬取電影 數據) ............ 錯誤!未定義書簽。
1 分析網頁 誤錯? 錯誤! 未定義書簽。
2 爬取數據 ............................................................... 錯誤! 未定義書簽。
3 數據整理、轉換 誤錯? 錯誤! 未定義書簽。
4 數據保存、展示 誤錯? 錯誤! 未定義書簽。
5 技術難點關鍵點 誤錯? 錯誤! 未定義書簽。
六、總結 .................................................................. 錯誤!未定義書簽。
一、
選題背景 二、
爬蟲原理 三、
爬蟲歷史與分類 四、
常用爬蟲框架比較 Scrap y框架 :Scrapy框架就是一套比較成熟得 Python爬蟲框架,就是使用 Python 開發得快速、高層次得信息爬取框架,可以高效得爬取web 頁面并提取出結構化數據。Scrapy應用范圍很廣,爬蟲開發、數據挖掘、數據監測、自動化測試等. Crawle y框架: :Crawley 也就是 Python開發出得爬蟲框架,該框架致力于改變人們從互聯網中提取數據得方式。
a Portia 框架 :Portia框架就是一款允許沒有任何編程基礎得用戶可視化地爬取網頁得爬蟲框架。
newsp ap p er r 框架: :newspaper 框架就是一個用來提取新聞、文章以及內容分析得 Python 爬蟲框架. P P yt t hon n- - go oe se 框架:
:Python-goose 框架可提取得信息包括:
〈1〉文章主體內容;<2>文章主要圖片;<3>文章中嵌入得任heYoutube/Vimeo 視頻;<4〉元描述;〈5〉元標簽
五、數據爬取實戰( 豆瓣 網 爬取電影 數據)
1分析網頁
# 獲取 ht ml l 源代碼
def _ _g g e tHtml( ):
d ata =
] []
?
p ageN u m = 1
pageSize = 0
: try:
?
wh i le ( p ageSiz e
〈 = 1 25):
# h ead e rs =
{ { ’U ser —A A ge e n t" :’ Mozill l a /5 、 0 (Windows N T 6 、 1) A pp p l eWe bK K i t/5 37、1 1 ( KHTML,
like
Geck o ) C h rome/23 、0 0 、 127 1、 64 S a fari/537, 、11’,
# ’R efe r er ’: : N on e
#注意如果依然不能抓取得話, , 這里可以設置抓取網站得h ost
#
} } ?
#
o pener
=
urllib、r eq ue e st t 、 build_ opene e r() )
# opener 、 addh ead d er s =
[ heade rs s ] ?
url l
= "”
+ st r( pag e Siz e ) +
”&f ilt er r ="
+ s tr(p ag eNum)
#
data [ "h t ml%s ’
%
i ] = url lib b 、 re q uest 、ur l op en( ur l)、r ead() 、 decode("ut f — 8 ") ?
da ta a 、 append(url li i b、r equ e st 、 urlope n( ur l) ) 、r ead() 、d ecode (”utf f -8 8 ")) )
page Si i z e + =
25 5
?
p p ageN Nu1 m += 1
?
pr i nt( pa geSize, page N um)
excep t
E E x cepti o n a s
e:
r r ai se e
retur n
data
2 爬取數據 def
_ _ _ getData(html):
title =
[]
# #
電影標題 ?
#rati ng_ _ n um =
[ [ ]
#
評分 ?
r r a nge _ num =
[]
# 排名 ?
# ra t ing _ people _num
= [ ]
# 評價人數
m ovie_a u thor
= []
# 導演 ?
da t a = {}
# b s4 解析 h h t ml ?
s oup =
Beauti fu u lS S ou p(html,
” html 、 parser)
”)
?
for li
i n s oup p 、 find( ”ol l ” , at t tr r s= = { "clas s’:
" " g rid_view"} )、 fin d_ al l( "li"):
t it le e 、 appen d( li 、f f i nd("s p an", c la a ss s _= = ” title ") 、t ext)
#r r a ti ng_ nu u、 m、 append(li、 、 fin d ("d iv v, ”,
class_="star ") 、 find( ” spa n" " ,
class_ = "rating_nu m')、t ext )
ra n ge _ num、 、a a p pen d (li、 、 fi n d("di v”,
class _=’pi c" " )、 fin d( "em ") ) 、 text)
)
?
#span s
= l i、 find("d iv ”,
c c l as s_= =’ ’ star’ ’) )、 、 find_ al l l("sp an") ?
#f
o r x
in
r r a nge(len (s s pa a ns s )):
#
i f x
<= 2: ?
#
p p ass s ?
# e l se :
#
r r at t in n g _p eo ple_num、 、 append(s p ans[ x] 、 st ri i ng[ — le n( s pans[x ]、s s t rin g ): — 3])
s tr = l i、fin n d(” div", cla s s_= ’b b d’) ) 、 find( ”p",
clas s_= = ’" " )、 te xt t 、 lstrip()
)
?
in de e x
= str r 、f f in d(" 主") )
?
if (ind ex x
= = =
-1) ) :
index = str 、 fin d( ( "、、、") )
?
prin t (li 、find d (”d d iv v” ” , c las s_=" pi i c’)、 find(” ” em") 、t t e xt)
if
( li 、 find ( "div ” , cl as s s _= ’ pic ’)、f fi nd( ”em m ”)、t t ex x t
== 2 10):
i i nd d ex
=
60
# p rint("aaa ”) ) ?
# #
p rint ( st r [4 :i i n de x ]) ?
m ov ie _autho r、 append ( str[4: i nde x ])
d d at t a ["t i tl e" " ]
= titl e
#da t a["ra t ing_num" ]
= ra ti i n g_nu m
dat a[' rang e_n n um m ’ ] =
ram nge_num
?
#data[ ’ rating g _pe e o pl e_n n um’ ] = r at i ng _ peopl e _nu m
data a [’ mo v ie_au th h or r ’ ] =
movie_a u th or r
ret u rn dat a
3 數據整理、轉換 def _ _getMov ie e s( da t a):
f = op e n("F:// d ouban_mov ie e 、 html" ,
’w’, , e nc o ding=’ utf —8 8 ’) )
f f 、w rite(" 〈 html> ”)
f、 wr i te( ” <h e ad 〉< < met t a
charset= ’ UTF -8 8 ’> > 〈 title 〉Insert title here</ t it l e> </ / he ad 〉) ")
?
f f 、 wr i te( ”〈b bod d y> > ”) )
?
f、 write (”〈h 1> 爬 取豆瓣電影< < /h1 >")
f f 、 wri te(” <h4> 作者:劉文斌〈 /h 4〉 ")
f f 、 wr i te( ”〈 h4>
時間: : "
+ n o wt i me + ”< /h 4>”) )
?
f f 、w w ri i te e ( "<hr> ”) )
f f 、wr r i te ( "< t able
width=" 8 00px ’
border="1 ’
a a lign=center>" )
f f、 、 wr i" te(" 〈 th ea a” d>”) )
?
f f、 、w w r ite("<t〉 r〉" ")
)
?
f f 、writ e( (” ” <t〉 h〉 <font si ze e =" " 5 " c olor=g r een 〉電影 </fo n t></t)
h〉”)
?
#f 、w w r ite ("<t t h
w idt h= = '5 0px ' ><fo n t siz z e ="5 ’
c c o lor=g re e en n 〉評分</ font 〉〈/ / th〉" " )
f f 、 wri te e (" " 〈 th
wi i d th="5 0 px ’> > 〈f f on n t
size=' ’5'
c ol o r=green 〉排名〈/ fo nt〉〈 /th> ”) )
?
#f 、wr ite( "
〈t t h
width= ’1 00px ’〉〈 font size = "5" c olor=green 〉評價人數 </fo nt〉〈 /t h〉" " )
?
f、 wr ite (" " 〈 th> 〈 font siz e= "5 '
color=gr e en> 導演〈/ font 〉< /th >”) )
f f 、 wr it e( ” </tr>")
f f 、wr r i te("< / th e ad 〉”) )
f f 、wr ite(" 〈 tbod y> > ”) )
for data in data s: :
?
for i
i i n
ra n ge( 0, ,
25 ): :
?
f f 、 write ("〈t t r〉”) )
f f 、 write( " <td styl e =" c olor:ora n ge; t ext —align:c en t er ’〉 %s < /td 〉”
% da ata [ "ti t le"][i])
)
?
#
f、w w r ite (”〈 td s ty le =’c c olo r:bl ue e ; te xt-a a l ign :c c e nte r'〉% % s</ / t d>"
% data ['r r ati i n g_num"] [i] ] )
?
f、 writ e ("<td
s s ty y le e = "co lo r: r ed ; text — al l i gn :cen nt er" 〉% s< / td 〉”
% %
data [’r ange_num ’] [i])
#
f 、w w ri i te(" " <t d sty le= ’ co l or:bl u e;tex t- - alig n:
cen te e r’〉 %s 〈 /td >”
% %
d d a ta[ ’r ating_p e ople_nu m"] [i i ]) )
f f 、 write( ”〈 td st y le= ’ col o r: bl l ack k ;text — al l i gn:center ’〉% s< / td>" % d ata[’ ’m m o vi e_ aut h or ’][ [ i] ] )
f f 、 write (" " 〈) /tr>")
?
f f 、 wri te e (”〈/ tbody〉" " )
f f 、 write (" " </ / th h e ad 〉) ")
?
f f 、 wri t e( ” </ ta a b le 〉") )
f f、 、w w rit t e( ( ”</ bo dy y〉 〉" ")
)
?
f、 write( "〈/ / ht t ml〉”)
?
f f 、 close()
if f
__ na a m e__
== =
’_ _ _m m ai i n__ _ ’: :
data s
= []
h h t mls = __getH t ml () )
?
f or i
i n rang e(l l en n( htmls) ): :
?
dat a
= __getData ( ht m ls[ i] ])
)
?
datas 、 ap p end(data)
?
_ _g e tMo vies(datas )
4數據保存、展示
結果如后圖所示:
5 技術難點關鍵點 數據爬取實戰( 搜房 網 爬取房屋 數據) fro o m
bs4 i i m po rt t
BeautifulSoupopmi? impo r t requestsr?ep = requests、get( ’" ") rep、encoding = " " g b2312"
# 設置編碼方式 html = rep、texth" ,lmth(puoSlufituaeB = puos? "h tml、 parser ’)
f = open( "F://f a ng 、 html ’, ’w w ',encoding= ’u u tf —8 8 ’) f、write( ” <ht ml〉") f、write( "< hea a d〉〈m eta ch a rse t= = ’ UTF — 8" " > <t i tle>Ins
er r t
t it l e here</tit l e></ h ead 〉”)〈”(etirw、f? ”〈b b o dy>” ”)
f、write(" " 〈c c en ter> < h1 〉新房成交T OP 3 </h1 >〈/ ce nt t er> > ”)〈"(etirw、f? "〈t t ab b le
b order = "1px ’
width= ’1 1 000 0 px x ’
h eig ht ="800p x’
ali i g n=c e nte r〉< tr 〉")w、f?rite( "<th>< h2 2 〉房址 </ h 2> 〈 /t h >")〈" "(etirw、f? 〈 th 〉〈h2 2 〉成交量〈 /h2 〉〈 /th 〉" ") f、write( ”< < t h> 〈h2>均價 </h2> </ / th h 〉〈/ / tr r >”) rof? for li in soup、find(” ” ul",class_=” ” ul02")、find_all( "l l i”):
name=li、find(” ” div” ”,class_=" " p btext” ”)、find(” ”p”)、text
chengjiaoliang=li、find(" " spa a n”,class_= "red d — f3 ”)、text
try y:
id”(dnif、il=aijnuj? ”di v",class_=" "o hte r" ")、find( "p",class_=" " g ray —9 9 ”) #、text、replace(’。O’, ’平方米") ?
exce p t Exception a a s
e:
?junjia=li、find( "di v" ",class_= "gray — 9") #、text、replace("?O', ’平方米') ?
f、write( "<tr 〉< < t d a li g n=ce n te r〉< < f ont
size="5px’
c c ol l o r=r ed d > %s 〈 /fo nt t 〉</ / td d 〉 " % name)
、f?write( "〈t t d
alig n= = ce e n ter> 〈 font s i ze= ’ 5px"
col or=b l ue>%s</font> 〈/ / td〉 " % chengjiaoliang)
rw、f?
ite(" " 〈t t d
a lign = center 〉 <f o nt
size= '5p p x’
col or r=g g re e en n 〉 %s 〈/ / f ont >〈/ td></t r〉 " % junjia)
rp p? rint(name)
f、write(" " < /table 〉")<"(etirw、f? "< /bo d y> ”)
? 六、總結 教師評語: 成績:
指導教師:
推薦訪問: 實習報告 爬蟲 網絡上一篇:與職工解除勞動合同協議
下一篇:酒類代理合同協議(標準版)
在偉大祖國73華誕之際,我參加了單位組織的“光影鑄魂”主題黨日活動,集中觀看了抗美援朝題材影片《長津湖》,再一次重溫這段悲壯歷史,再一次深刻感悟偉大抗美援朝精神。1950年10月,新中國剛剛成立一年,
根據省局黨組《關于舉辦習近平談治國理政(第四卷)讀書班的通知》要求,我中心通過專題學習、專題研討以及交流分享等形式,系統的對《習近平談治國理政》(第四卷)進行了深入的學習與交流,下面我就來談一談我個人
《習近平談治國理政》(第四卷)是在百年變局和世紀疫情相互疊加的大背景下,對以習近平同志為核心的黨中央治國理政重大戰略部署、重大理論創造、重大思想引領的系統呈現。它生動記錄了新一代黨中央領導集體統籌兩個
《真抓實干做好新發展階段“三農工作”》是《習近平談治國理政》第四卷中的文章,這是習近平總書記在2020年12月28日中央農村工作會議上的集體學習時的講話。文章指出,我常講,領導干部要胸懷黨和國家工作大
在《習近平談治國理政》第四卷中,習近平總書記強調,江山就是人民,人民就是江山,打江山、守江山,守的是人民的心。從嘉興南湖中駛出的小小紅船,到世界上最大的執政黨,在中國共產黨的字典里,“人民”一詞從來都
黨的十八大以來,習近平總書記以馬克思主義戰略家的博大胸襟和深謀遠慮,在治國理政和推動全球治理中牢固樹立戰略意識,在不同場合多次圍繞戰略策略的重要性,戰略和策略的關系,提高戰略思維、堅定戰略自信、強化戰
《習近平談治國理政》第四卷集中展示了以習近平同志為核心的黨中央在百年變局和世紀疫情相互疊加背景下,如何更好地堅持和發展中國特色社會主義而進行的生動實踐與理論探索;對于新時代堅持和發展什么樣的中國特色社
在黨組織的關懷下,我有幸參加了區委組織部組織的入黨積極分子培訓班。為期一周的學習,學習形式多樣,課程內容豐富,各位專家的講解細致精彩,對于我加深對黨的創新理論的認識、對黨的歷史的深入了解、對中共黨員的
《習近平談治國理政》第四卷《共建網上美好精神家園》一文中指出:網絡玩命是新形勢下社會文明的重要內容,是建設網絡強國的重要領域。截至2021年12月,我國網民規模達10 32億,較2020年12月增長4
剛剛召開的中國共產黨第十九屆中央委員會第七次全體會議上討論并通過了黨的十九屆中央委員會向中國共產黨第二十次全國代表大會的報告、黨的十九屆中央紀律檢查委員會向中國共產黨第二十次全國代表大會的工作報告和《