Python爬蟲經常使用模塊,BeautifulSoup筆記

import urllib  
import urllib.request as request
import re
from bs4 import *

#url = 'http://zh.house.qq.com/'
url = 'http://www.0756fang.com/'
html = request.urlopen(url).read().decode('utf-8')

soup = BeautifulSoup(html,"html.parser")
print(soup.head.meta['content'])#輸出所得標籤的‘’屬性值
print(soup.span.string);print(soup.span.text)#兩個效果同樣,返回標籤的text

#name屬性是‘’的標籤的<ResultSet>類,是一個由<Tag>組成的list
print(soup.find_all(attrs={'name':'keywords'}))
print(soup.find_all(class_='site_name'))#class屬性是‘’的<Tag>的list,即<ResultSet>
print(soup.find_all(class_='site_name')[0])#這是一個<Tag>

print(soup.find(attrs={'name':'keywords'}))#name屬性是‘’的標籤的<Tag>類
print(soup.find('meta',attrs={'name':'keywords'}))#name屬性是‘’的meta標籤的<Tag>類
print(soup.find('meta',attrs={'name':'keywords'})['content'])#<Tag類>可直接查屬性值
#配合re模塊使用,能夠忽略大小寫
#以下面例子,能夠找到name屬性爲keywords,KEYWORDS,KeyWORds等的meta標籤
print(soup.find('meta',attrs={'name':re.compile('keywords',re.IGNORECASE)}))

'''-------------------------------------------------------------------------'''
'''----------------------------修改BeautifulSoup—----------------------------'''
'''-------------------------------------------------------------------------'''
soup.find(attrs={'name':'keywords'}).extract#調用這個方法,能夠刪除這一個標籤
soup.title.name='ppp'#能夠把Tag的名字<title>改爲<ppp>

#可使用append(),insert(),insert_after()或者insert_before()等方法來對新標籤進行插入。
Tag1 = a.new_tag('li',class_='123')'''創造一個Tag'''
a.title.append(Tag1)#把Tag1添加爲name是title的Tag的最後一個【子節點】,沒有換行
      #.insert(0,Tag1)----這裏用insert的話,第一個參數能夠控制所添加【子節點】的前後位置
      #.insert_after(Tag1)---和insert_before同樣,添加爲Title的【兄弟節點】

soup.head.meta['content']='隨便輸入,能夠添加(或更改)這個Tag的content屬性(值)'
del soup.head.meta['content']#這個語法能夠直接刪除這個Tag的content屬性


soup.li.clear#調用方法會清除全部li標籤的text
soup.title.string='用這個方法能夠修改title標籤的內容'#慎用,只用於最子孫最小的節點,用於父節點會清空子節點
soup.div.append('放在div子節點位置的 最後append最後,是標籤內容')
soup.div.insert(0,'放在div子節點位置的 最前insert【0】最前,是標籤內容'')

  這是我之前的BS4筆記,交流請聯繫 QQ 328123440html

相關文章
相關標籤/搜索