爬蟲第四節bs4

2021-10-18 23:48:27 字數 2166 閱讀 2601

如何用bs4進行資料解析

資料解析的原理:

1.標籤定位

2.提取標籤,標籤屬性中的資料值

bs4資料解析的原理:

1.例項化乙個beautifulsoup物件,並將頁面原始碼資料載入到該物件當中

2.通過呼叫beautifulsoup物件中相關的屬性或者方法進行標籤定位和資料解析

fp =

open

('./test.html'

,'r'

,encoding=

'utf-8'

)soup=beautifulsoup(fp,

'lxml'

)

page_text=response.text

soup=beautifulsoup(page_text,

'lxml'

)

print

(soup.a)

print

(soup.find(

"a")

)都是放回第一次出現的那個標籤

soup.find_all(

)找到所有的對應的標籤

一般選擇器:

soup.select(

"選擇器(類、標籤)"

)層級選擇器:

soup.select(

"a>b>c>d")[

0] 最後一層是d,有多個d組成乙個列表,通過[i]訪問列表

soup.select[

'.a>b d'][

0]用空格表示多個層級

獲取標籤的內容

1.獲得文字內容

soup.a.text/string/get_text(

)text/get_text獲取所有的文字內容

string只可以獲取直系的文字內容,<

class

>

text<\a>

<\class

>這裡的text屬於的直系文字內容,而不屬於<

class

>直系的文字內容

2.獲取標籤中的屬性值

soup.a[

"屬性名稱"

]

接下來是爬取三國演義各個章節

import requests

from bs4 import beautifulsoup

#物件的例項化

#1.將本地的html文件載入到beautifulsoup中

if __name__ ==

'__main__'

: url=

''headers=

page_text = requests.get(url=url,headers=headers)

.text

#例項化乙個beautifulsoup

soup= beautifulsoup(page_text,

'lxml'

)#解析章節標題和詳情頁的url

li_list=soup.select(

'.book-mulu > ul >li'

) fp=

open

('./sanguo.txt'

,'w'

,encoding=

'utf-8'

)for li in li_list:

title=li.a.string

detail_url=

''+li.a[

'href'

] detail_page_text=requests.get(url=detail_url,headers=headers)

.text

detail_soup=beautifulsoup(detail_page_text,

'lxml'

) div_tag=detail_soup.find(

'div'

,class_=

'chapter_content'

) content=div_tag.text

fp.write(title+

':'+content+

'\n'

)print

(title,

'爬取成功'

)

ObjC第四節 繼承

繼 承 1 繼承 1.1 nsobject,根類,oc建立的類都繼承自根類,位於類層次結構的頂層,沒有父類 1.2 父類的例項變數和方法都可以被隱式的繼承過來成為子類的一部分,子類就可以直接訪問這些例項變數和方法 1.3 alloc和init是繼承自nsobject的方法 1.4 繼承的概念呈單鏈繼...

第四節 條件語句

if語句 if v 100else if v 50elseif語句不需要括號 用法高階 const filename abc.txt if contents,error ioutil.readfile filename error nilelse注意 contents和error變數都是在if 塊中...

Python基礎第四節

字典是 鍵值對 的無序可變序列,其中每個元素都是乙個 鍵值對 包含 鍵物件 和 值物件 就像可通過列表元素索引值獲取對應物件,我們可通過 鍵物件 獲取 刪除 更新其對應的值物件。鍵必須是不可變資料,如整數 浮點數 字串 元組,不能是字典 列表 集合等可變物件,鍵不可重複。若重複出現鍵,則後面的覆蓋前...