這是我以前的BS4筆記,交流請聯繫 QQ 328123440 ...
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 328123440