东方亚洲欧a∨人在线观看|欧美亚洲日韩在线播放|日韩欧美精品一区|久久97AV综合

        Python網(wǎng)絡(luò)爬蟲實(shí)習(xí)報(bào)告python實(shí)習(xí)報(bào)告

        發(fā)布時(shí)間:2020-08-26 來源: 實(shí)習(xí)報(bào)告 點(diǎn)擊:

          Python 網(wǎng)絡(luò)爬蟲實(shí)習(xí)報(bào)告

         目錄 一、選題背景 .................................................................................... - 1 -

         二、爬蟲原理 .................................................................................... - 1 -

         三、爬蟲歷史與分類 ......................................................................... - 1 -

         四、常用爬蟲框架比較 ..................................................................... - 1 -

         五、數(shù)據(jù)爬取實(shí)戰(zhàn)( 豆瓣網(wǎng)爬取電影數(shù)據(jù)) ........................................ - 2 -

         1 分析網(wǎng)頁 .......................................................................................... -

         2

         - 2 爬取數(shù)據(jù) .......................................................................................... -

         2

         - 3 數(shù)據(jù)整理、轉(zhuǎn)換............................................................................... -

         3

         - 4 數(shù)據(jù)保存、展示............................................................................... -

         7

         - 5 技術(shù)難點(diǎn)關(guān)鍵點(diǎn)............................................................................... -

         9

         -

          六、總結(jié) ......................................................................................... - 11 -

         一、

         選題背景 二、

         爬蟲原理 三、

         爬蟲歷史與分類 四、

         常用爬蟲框架比較 y Scrapy 框架: :Scrapy 框架就是一套比較成熟的 Python 爬蟲框架,就是使用 Python 開發(fā)的快速、高層次的信息爬取框架,可以高效的爬取 web頁面并提取出結(jié)構(gòu)化數(shù)據(jù)。Scrapy 應(yīng)用范圍很廣,爬蟲開發(fā)、數(shù)據(jù)挖掘、數(shù)據(jù)監(jiān)測(cè)、自動(dòng)化測(cè)試等。

         y Crawley 框架: :Crawley 也就是 Python 開發(fā)出的爬蟲框架,該框架致力于改變?nèi)藗儚幕ヂ?lián)網(wǎng)中提取數(shù)據(jù)的方式。

         a Portia 框架: :Portia 框架就是一款允許沒有任何編程基礎(chǔ)的用戶可視化地爬取網(wǎng)頁的爬蟲框架。

         r newspaper 框架: :newspaper 框架就是一個(gè)用來提取新聞、文章以及內(nèi)容分析的 Python 爬蟲框架。

         Python- -e goose 框架: :Python-goose 框架可提取的信息包括:<1>文章主體內(nèi)容;<2>文章主要圖片;<3>文章中嵌入的任 heYoutube/Vimeo 視頻;<4>元描述;<5>元標(biāo)簽

         五、數(shù)據(jù)爬取實(shí)戰(zhàn)( 豆瓣網(wǎng)爬取電影數(shù)據(jù)) 1 分析網(wǎng)頁

         # 獲取 html 源代碼

         def __getHtml():

         data = []

         pageNum = 1

         pageSize = 0

         try:

         while (pageSize <= 125):

         # headers = {"User- - Agent":"Mozilla/5 、 0 (Wi ndows NT 6 6 、 1) AppleWebKit/537 、 11 (KHTML, like Gecko) Chrome/23 、0 0 、1271 、 64 Safari/537 、 11",

         # "Referer":None # 注意如果依然不能抓取的話, , 這里可以設(shè)置抓取網(wǎng)站的 host

         # }

         # opener = urllib 、 request 、 build_opener()

         # opener 、 addheaders = [head ers]

         url = "" + str(pageSize) + "&filter=" + str(pageNum)

         # data["html%s" % i ]=urllib、 、 request、 、 urlopen(url) 、read() 、 decode("utf- - 8")

         data、 、 append(urllib、 、 request、 、 urlopen(url)、 、 read() 、

         decode("utf- - 8"))

         pageSize += 25 5

         pageNum += 1

         print(pageSize, pageNum)

         except Exception as e:

         raise e

         return data

         2 爬取數(shù)據(jù) def __getData(html):

         title = []

         # 電影標(biāo)題

         #rating_num = []

         # 評(píng)分

         range_num = []

          # 排名

         #rating_people_num = []

         #

         評(píng)價(jià)人數(shù)

         movie_author = []

          # 導(dǎo)演

         data = {}

         # bs4 解析 html

         soup = BeautifulSoup(html, "html 、 parser")

         for li in soup 、 find("ol", attrs={"class": "grid_view"}) 、find_all("li"):

         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")

         #for x in range(len(sp ans)):

         #

          if x <= 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 、 fi nd(" 主 ")

         if (index == - - 1):

         index = str 、 find(" 、、、 ")

         print(li 、 find("div", class_="pic") 、 find("em") 、text)

         if (li、 、 find("div", class_="pic")、 、 find("em")、 、 text == 210):

         index = 60

         # print("a aa")

         # print(str[4:index])

         movie_author 、 append(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"] = mov ie_author

         return data

         3 數(shù)據(jù)整理、轉(zhuǎn)換 def __getMovies(data):

         f = open("F://douban_movie 、 html", "w",encoding="utf- - 8")

         f f 、 write("<html>")

         f f 、 write("<head><meta charset="UTF- - 8"><title>Insert title here</title></head>")

         f f 、 write("<body>")

         f f 、 write ("<h1> 爬取豆瓣電影 </h1>")

         f f 、 write("<h4> 作者: : 劉文斌 </h4>")

         f f 、 write("<h4> 時(shí)間 :" + nowtime + "</h4>")

         f f 、 write("<hr>")

         f f 、 write("<table width="800px" border="1" align=center>")

         f f 、 write("<thead>")

         f f 、 write("<tr>")

         f f 、 write("<th><font size="5" colo r=green> 電影</font></th>")

         #f 、 write("<th

         width="50px"><font size="5" color=green>評(píng)分 </font></th>")

         f f 、 write("<th

         width="50px"><font size="5" color=green>排名 </font></th>")

         #f 、 write("<th

         width="100px"><font size="5" color=green>評(píng)價(jià)人數(shù) </font></th>")

         f f 、 write("<th><font size="5" color=green> 導(dǎo)演</font></th>")

         f f 、 write("</tr>")

         f f 、 write("</thead>")

         f f 、 write("<tbody>")

         for data in datas:

         for i in range(0, 25):

         f f 、 write("<tr>")

         f f 、 write("<td style="color:orange;text- - align:center">%s</td>" % data["title"][i])

         #

         f 、 write("<td

         style="color:blue;text- - align:center">%s</td>" % data["rating_num"][i])

         f f 、 write("<td style="color:red;text- - align:center">%s</td>" % data["range_num"][i])

         #

          f 、 write(" <td style="color:blue;text- - align:center">%s</td>" % data["rating_people_num"][i])

         f f 、 write("<td style="color:black;text- - align:center">%s</td>" % data["movie_author"][i])

         f f 、 write("</tr>")

         f f 、 write("</tbody>")

         f f 、 write("</thead>")

         f f 、 write("</table>")

         f f 、 write("</body>")

         f f 、 write("</html>")

         f f 、 close()

         if __name__ == "__main__":

         datas = []

         htmls = __getHtml()

         for i in range(len(htmls)):

         data = __getData(htmls[i])

         datas 、 append(data)

         __getMovies(datas)

          4 4 數(shù)據(jù)保存、展示

         結(jié)果如后圖所示:

          5 技術(shù)難點(diǎn)關(guān)鍵點(diǎn) 數(shù)據(jù)爬取實(shí)戰(zhàn)( 搜房網(wǎng)爬取房屋數(shù)據(jù))

         from bs4 import BeautifulSoup import requests rep = requests、get( "") rep、encoding = "gb2312"

         # 設(shè)置編碼方式 html = rep、text soup = BeautifulSoup(html, "html 、 parser") f = open( "F://fang 、 htm l", "w",encoding= "utf- - 8") f、write( "<html>") f、write( "<head><meta charset="UTF- - 8"><title>Insert title here</title></head>") f、write( "<body>") f、write( "<center><h1> 新房成交 TOP3</h1></center>") f、write( "<table border="1px" width="1000px" height="800px" align=cent er><tr>") f、write( "<th><h2> 房址 </h2></th>") f、write( "<th><h2> 成交量 </h2></th>") f、write( "<th><h2> 均價(jià) </h2></th></tr>") for li in soup、find( "ul",class_= "ul02")、find_all( "li"):

          name=li、find( "div",class_= "pbtext")、find( "p")、text

          chengjiaoliang=li、find( "span" ",class_= "red- - f3")、text

          try:

          junjia=li、find( "div",class_= "ohter")、find( "p",class_= "gray- - 9") #、text、replace("?O", "平方米")

          except Exception as e:

          junjia=li、find( "div",class_= "gray- - 9") #、text、replace("?O", "平方米")

         f、write( "<tr><td ali gn=center><font size="5px"

         color=red>%s</font></td>" % name)

          f、write( "<td align=center><font size="5px"

         color=blue>%s</font></td>" % chengjiaoliang)

          f、write( "<td align=center><font size="5px"

         color=green>%s</font></td></tr>" % junjia)

          print(name)

         f、write( "</table>") f、write( "</body>")

         六、總結(jié)

          教師評(píng)語:

          成績(jī):

          指導(dǎo)教師:

        相關(guān)熱詞搜索:實(shí)習(xí)報(bào)告 爬蟲 網(wǎng)絡(luò)

        版權(quán)所有 蒲公英文摘 smilezhuce.com