Python實(shí)戰(zhàn)爬蟲系統(tǒng)學(xué)習(xí)筆記一:解析網(wǎng)頁(yè)中的元素

學(xué)習(xí)python編寫爬蟲第一天,學(xué)會(huì)如何解析本地網(wǎng)頁(yè)

第1步:使用用Beautiful Soup解析網(wǎng)頁(yè)

Soup = BeautifulSoup(wb_data,'lxml')

第2步:描述爬取信息的位置

這里使用瀏覽器開發(fā)者工具,選取元素,右鍵->Copy selector

Copy selector

可得到"body > div.main-content > ul > li > img"
代碼如下:

images = Soup.select('body > div.main-content > ul > li > img')

第3步:從標(biāo)簽中獲取所需要的信息

from bs4 import BeautifulSoupwith open('/Users/new_index.html','r') as wb_data:    Soup = BeautifulSoup(wb_data,'lxml')    images = Soup.select('body > div.main-content > ul > li > img')    titles = Soup.select('body > div.main-content > ul > li > div.article-info > h3 > a')    descs = Soup.select('body > div.main-content > ul > li > div.article-info > p.description')    rates = Soup.select('body > div.main-content > ul > li > div.rate > span')    cates = Soup.select('body > div.main-content > ul > li > div.article-info > p.meta-info')    #print(images,titles,descs,rates,cates,sep='\n-------------\n')info = []for image,title,desc,rate,cate in zip(images,titles,descs,rates,cates):    data = {        'title':title.get_text(),        'rate' :rate.get_text(),        'desc':desc.get_text(),        'cate': list(cate.stripped_strings),        'image': image.get('src')    }    info.append(data)for i in info:    if float(i['rate'])>3:        print(i['title'],i['cate'])

總結(jié):

  • Mac中使用pip(注意python的版本,python3使用pip3)和easy_install安裝第三方庫(kù)
  • selector 和Xpath兩種描述元素路徑的方式
  • lxml是python中比較流行的解析庫(kù),用來處理XML和HTML,第一次使用需要安裝,否則會(huì)報(bào)錯(cuò):
bs4.FeatureNotFound: Couldn't find a tree builder with the features you requested: lxml. Do you need to install a parser library?

運(yùn)行下面的代碼安裝lxml

pip3 install lxml
  • 在Copy selector會(huì)拷貝到某一個(gè)結(jié)點(diǎn)的子元素nth-child,如
ul > li:nth-child(2) 

在python語言中需要改成它能理解的方式nth-of-type。
編譯器報(bào)錯(cuò)提示為

Only the following pseudo-classes are implemented: nth-of-type.
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 本次學(xué)習(xí)目的:學(xué)會(huì)篩選所需要的信息。 解析網(wǎng)頁(yè)的步驟: 1.使用Beautiful解析網(wǎng)頁(yè)Soup = Beaut...
    LineWay閱讀 1,641評(píng)論 0 0
  • 〇、前言 本文共108張圖,流量黨請(qǐng)慎重! 歷時(shí)1個(gè)半月,我把自己學(xué)習(xí)Python基礎(chǔ)知識(shí)的框架詳細(xì)梳理了一遍。 ...
    Raxxie閱讀 19,565評(píng)論 17 410
  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 178,872評(píng)論 25 709
  • 現(xiàn)在在寫東西時(shí),我得先定義這個(gè)概念。 “潛規(guī)則”:看不見的、明文沒有規(guī)定的、約定成俗的、但是卻又是廣泛認(rèn)同、實(shí)際起...
    Zearboy閱讀 243評(píng)論 0 0
  • 我的女朋友是撿回來的。 準(zhǔn)確地說,是我堂哥拋給我的。一開始,她是一塊燙手的山芋,后來才慢慢一口一口地舔進(jìn)肚子,濕潤(rùn)...
    Lambert_style閱讀 1,369評(píng)論 0 0

友情鏈接更多精彩內(nèi)容