版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
實驗一了解HTML學(xué)習(xí)BeautifulSoup輸入網(wǎng)址之后發(fā)生了什么?1.在瀏覽器地址欄輸入網(wǎng)址2.瀏覽器向網(wǎng)站發(fā)送HTTP請求
GET瀏覽器信息用戶個人信息GET請求中包括的內(nèi)容輸入網(wǎng)址之后發(fā)生了什么?3.網(wǎng)站處理請求,返回HTML文本輸入網(wǎng)址之后發(fā)生了什么?4.瀏覽器解析HTML,渲染成網(wǎng)頁圖片:
JavaScript文件:
CSS文件…瀏覽器從HTML中找到資源地址,下載所需要的其他資源輸入網(wǎng)址之后發(fā)生了什么?在瀏覽器地址欄輸入網(wǎng)址瀏覽器向網(wǎng)站發(fā)送HTTP請求網(wǎng)站處理請求,返回HTML瀏覽器解析HTML實驗2:Crawler爬蟲實驗4:服務(wù)器端程序?qū)嶒?:HTML與Parser了解HTML——基礎(chǔ)HTML是什么HTML是超文本標(biāo)記語言(HyperTextMarkupLanguage),用標(biāo)記標(biāo)簽(markuptags)來設(shè)計網(wǎng)頁
<html><head><title>testpage</title></head><body><h1>ThisaHeading</h1><p>Thisisaparagraph.</p></body></html>將左側(cè)文本保存成.html文件(復(fù)制到記事本里,另存為test.html),用瀏覽器打開了解HTML——基礎(chǔ)HTML標(biāo)簽(tag)用<>括起的關(guān)鍵字,如<html>。通常像<b>...</b>這樣成對出現(xiàn)。標(biāo)簽對中,第一個標(biāo)簽叫起始標(biāo)簽(starttag),第二個標(biāo)簽叫結(jié)束標(biāo)簽(endtag)。HTML元素(element)從起始標(biāo)簽(starttag)到結(jié)束標(biāo)簽(endtag)之間的所有內(nèi)容。大部分HTML元素可以嵌套使用(可以包含其他HTML元素)。HTML屬性HTML元素可擁有一些屬性(attributes),屬性是以名值對(name/valuepair)的形式出現(xiàn)的,如name="value"。例如,HTML鏈接由<a>元素定義,href屬性用于定義鏈接的“地址”。<p>Thisisaparagraph.</p>起始標(biāo)簽元素內(nèi)容結(jié)束標(biāo)簽HTML元素<ahref="">bbs鏈接</a>了解HTML——基礎(chǔ)<html><head><title>testpage</title></head><body><h1>ThisaHeading</h1><p>Thisisaparagraph.</p></body></html><title>:網(wǎng)頁標(biāo)題<h1>:HTML標(biāo)題<p>:段落<head>:描述了文檔的各種屬性和信息<body>:包含文檔的所有內(nèi)容(如文本、超鏈接、圖像等)<html>:定義整個HTML文檔了解HTML——常見tag下列tag示例在basic.html文件中,可以用記事本等編輯器修改html文件,在瀏覽器中查看效果。HTML標(biāo)題樣式<h1>h1標(biāo)題</h1><h2>h2標(biāo)題</h2><h3>h3標(biāo)題</h3><h4>h4標(biāo)題</h4><h5>h5標(biāo)題</h5><h6>h6標(biāo)題</h6><em>強調(diào)的文本</em><strong>著重強調(diào)的文本</strong><b>粗體文本</b><i>斜體文本</i><big>大字體文本</big><p>這是<sub>下標(biāo)</sub>和<sup>上標(biāo)</sup></p>了解HTML——常見tag文本特殊字符(為避免與tag中的<>”等字符混淆)在basic.html中實驗回車和<br/>的區(qū)別,空格和
的區(qū)別<hr/>水平線<br/>換行(在HTML中,換行不是回車(“\n”))<<>>&&""
空格了解HTML——常見tag鏈接href屬性的值是鏈接的地址。圖像src(source)屬性的值是圖像的地址。width,height定義寬度和高度。列表<li>:每一項<ul>:無序列表(unorderedlist)<ol>:有序列表(orderedlist)<ahref="">sjtu鏈接</a><imgsrc="logo.jpg"width="130"height="60"/><ul><li>第一個項目</li><li>第二個項目</li></ul><ol><li>第一個項目</li><li>第二個項目</li></ol>了解HTML——常見tag表格<tr>:劃分行<td>:數(shù)據(jù)單元格(tabledata)<th>:表頭border屬性:表格邊框<tableborder="1"><tr><th>表頭1</th><th>表頭2</th></tr><tr><td>行1,單元格1</td><td>行1,單元格2</td></tr><tr><td>行2,單元格1</td><td> </td></tr></table>學(xué)習(xí)BeautifulSoupHTML/XML的解析器用Python模擬瀏覽器抓取HTML網(wǎng)頁>>>importurllib2>>>response=urllib2.urlopen('')#向服務(wù)器發(fā)出GET網(wǎng)站請求>>>content=response.read()#返回的內(nèi)容中為HTML頁面>>>printcontentHTML解析器HTML代碼學(xué)習(xí)BeautifulSoup——查看HTML如何更方便的查看HTML代碼不建議(太亂)在IE中查看源代碼在Python窗口中查看源代碼建議(可折疊,可查看頭信息)Firefox+FirebugChrome學(xué)習(xí)BeautifulSoup——查看HTML在Firefox中查看HTML方法一:下載解壓中的portablepython.zip文件,F(xiàn)irefoxPortable中已經(jīng)安裝好Firebug。方法二:打開Firefox,進入,點擊Addtofirefox。安裝后按F12,進入Firebug查看HTML。點擊按鈕之后,鼠標(biāo)移到網(wǎng)頁中,可以跳轉(zhuǎn)到對應(yīng)的代碼位置。學(xué)習(xí)BeautifulSoup——查看HTML在Chrome中查看HTML打開網(wǎng)頁后,按F12。點擊按鈕后,點擊網(wǎng)頁中元素,可以跳轉(zhuǎn)到對應(yīng)的代碼位置。學(xué)習(xí)BeautifulSoupBeautifulSoup是用Python寫的一個HTML/XML的解析器Python簡明教程
安裝BeautifulSoup方法一:下載解壓中的portablepython.zip文件。打開PyScripter-Portable.exe,如果可以運行fromBeautifulSoupimportBeautifulSoup說明安裝成功。否則按下一頁步驟安裝BeautifulSoup。學(xué)習(xí)BeautifulSoup——安裝方法二(Windows+Python2.*)(使用portablepython.zip的跳過這一頁):在中,下載安裝與本機Python版本相對應(yīng)的安裝文件。例如Python2.7版本選擇圖中setuptools-0.6c11.win32-py2.7.exe文件。(如果是64位系統(tǒng)用戶需要下載使用)安裝之后在命令行cmd里進入Python安裝目錄下的Scripts文件夾,運行easy_install.exeBeautifulSoup學(xué)習(xí)BeautifulSoup——簡介使用BeautifulSoup處理得到的網(wǎng)頁>>>importurllib2>>>content=urllib2.urlopen('').read()>>>fromBeautifulSoupimportBeautifulSoup>>>soup=BeautifulSoup(content)#將網(wǎng)頁HTML內(nèi)容給BeautifulSoup處理使用標(biāo)簽(tag)名作為成員<title>百度一下,你就知道</title>的標(biāo)簽名為title>>>printsoup.head>>>printsoup.head.title #可以進一步將結(jié)果級聯(lián)操作>>>printstr(soup.head.title).decode('utf8') #如果中文亂碼嘗試decode>>>printstr(soup.head.title.string).decode('utf8') #如果一個標(biāo)簽只有一個子節(jié)點,可以通過tag.string訪問tag內(nèi)容>>>soup.head.meta['content'] #獲取標(biāo)簽的屬性值>>>soup.head.meta.get('content','') #另一寫種法,屬性值不存在則返回''soup.headsoup.head.titlesoup.head.title.stringsoup.head.meta['content']學(xué)習(xí)BeautifulSoup——簡介剖析html樹>>>p=soup.head.title #定位到title節(jié)點parent:父節(jié)點>>>p.parent #p的上級節(jié)點,相當(dāng)于soup.head>>> #節(jié)點的標(biāo)簽名>>>head=p.parent #定位到head節(jié)點contents:子節(jié)點>>>printhead.contents #head下的子節(jié)點,以list方式存放>>>printstr(head.contents[0]).decode('utf8') #第一個子節(jié)點>>>printstr(head.contents[1]).decode('utf8') #第二個子節(jié)點nextSibling和previousSibling:尋找同層次節(jié)點>>>p.nextS #p的下一個節(jié)點>>>p.previousS #p的上一個節(jié)點p.parentpp.previousSiblingp.nextSiblinghead.contents[0]head.contents[1]學(xué)習(xí)BeautifulSoup——簡介搜索標(biāo)簽(tag)findAll:找到滿足給定條件的所有標(biāo)簽給定標(biāo)簽名查找>>>foriinsoup.findAll('p'): #查找所有標(biāo)簽名是p的標(biāo)簽...printi.get('id',''), #打出他們的id屬性值(其中有一個沒有id屬性,返回'')lgnvlklmlhcp給定多個標(biāo)簽名查找>>>foriinsoup.findAll(['div','p']):#查找標(biāo)簽名是p和div的標(biāo)簽...printi.get('id',''),umlgnvfmmConlklmlhcp給定標(biāo)簽名,屬性的名值對查找>>>soup.findAll('p',{'id':'lm'})[<pid="lm"></p>]給定正則表達式查找>>>importre#查找id值以l開頭的標(biāo)簽>>>foriinsoup.findAll('p',{'id':pile('^l')}):...printi.get('id',''),lglklmlh#查找img標(biāo)簽中,地址以gif結(jié)束的標(biāo)簽foriinsoup.findAll('img',{'src':pile('gif$')}):...printi.get('src',''),
學(xué)習(xí)BeautifulSoup——簡介正則表達式簡介在編寫處理網(wǎng)頁的程序時,經(jīng)常會有查找符合某些復(fù)雜規(guī)則的字符串的需要。正則表達式就是用于描述這些規(guī)則的工具。示例>>>importre>>>p=pile('a\dc') #定義匹配規(guī)則,\d表示一個數(shù)字(0-9)>>>string1='a1c' #待檢測的字符串>>>m=p.match(string1)>>>printm #如果結(jié)果不為None,表示匹配上<_sre.SRE_Matchobjectat0x01F668E0>>>>printm.group() #匹配的結(jié)果a1c>>>string2='abc'>>>m=p.match(string2)>>>printm #a\dc無法匹配abcNone學(xué)習(xí)BeautifulSoup——簡介正則表達式簡介元字符除了\d,還有其他元字符見表格。重復(fù)示例注意,如果你想查找元字符本身的話,比如你查找.,或者*,就出現(xiàn)了問題:你沒辦法指定它們,因為它們會被解釋成別的意思。這時你就得使用\來取消這些字符的特殊意義。因此,你應(yīng)該使用\.和\*。當(dāng)然,要查找\本身,你也得用\\.代碼可以匹配的字符串qiushi_tag_\d+qiushi_tag_1234^http.*\.jpg$
至少一個數(shù)字http開頭.jpg結(jié)尾中間任意字符學(xué)習(xí)BeautifulSoup——簡介正則表達式簡介提取字符串子串你經(jīng)常需要得到比是否匹配還要多的信息。例如給定一個郵箱,,需要提取出john和,這時候就需要分組。組是通過"("和")"元字符來標(biāo)識的。示例>>>p=pile('(\w+)@(\w+\.\w+)')>>>m=p.match('')>>>m.group()''>>>m.group(1) #第一個括號()中的內(nèi)容放在group(1)中'john'>>>m.group(2) #第二個括號()中的內(nèi)容放在group(2)中''練習(xí)給定任意網(wǎng)頁內(nèi)容,返回網(wǎng)頁中所有鏈接地址(不包括圖片地址)defparseURL(content):urlset=set()…returnurlset例如:提示:鏈接地址只需要考慮形如<ahref=“..”>這樣的形式將網(wǎng)址字符串url加入urlset操作是urlset.add(url)練習(xí)給定任意網(wǎng)頁內(nèi)容,返回網(wǎng)頁中所有圖片地址defparseIMG(content):imgset=set()…returnimgset例如提示:圖片地址只需要考慮形如<imgsrc=“..”>這樣的形式練習(xí)給定糗事百科有圖有真相任意一頁內(nèi)容,返回網(wǎng)頁中圖片和相應(yīng)文本,以及下一頁的網(wǎng)址defparseQiushibaikePic(content):docs={}nextPage=''…returndocs,nextPage對
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025保姆用工合同范本
- 2025年度軟件定制開發(fā)合同(客戶與開發(fā)公司)2篇
- 游泳池外墻裝修合同
- 2025年度形象片攝制政府采購合同執(zhí)行細則3篇
- 2025年度貨車及配套設(shè)施轉(zhuǎn)讓合同3篇
- 2025最標(biāo)準(zhǔn)商鋪轉(zhuǎn)租合同
- 廣告施工安全合同文本格式
- 水利水電樁基施工勞務(wù)分包合同
- 航空安防施工合同
- 健身房內(nèi)墻裝修刮瓷合同
- 語文-山東省2025年1月濟南市高三期末學(xué)習(xí)質(zhì)量檢測濟南期末試題和答案
- 2025年七年級下冊道德與法治主要知識點
- 亞馬遜項目合伙合同
- 蘭溪市排水防澇提升雨污管網(wǎng)修復(fù)改造初步設(shè)計文本
- 即興表演(上海電影藝術(shù)職業(yè)學(xué)院)知到智慧樹答案
- 2024解析:第一章機械運動-基礎(chǔ)練(解析版)
- 2024年山東省淄博市中考數(shù)學(xué)試卷(附答案)
- (正式版)HG∕T 21633-2024 玻璃鋼管和管件選用規(guī)定
- 廣告拍攝制作合同
- 電氣工作票培訓(xùn)-課件
- 2022年北京控股集團有限公司招聘筆試題庫及答案解析
評論
0/150
提交評論