1. 程式人生 > 程式設計 >詳解gantt甘特圖可拖拽、編輯(vue、react都可用 highcharts)

詳解gantt甘特圖可拖拽、編輯(vue、react都可用 highcharts)

css選擇器組成

規則由兩部分組成:選擇器以及一條或多條宣告。
主要講選擇器的相關用法(這在爬蟲時候足夠用了)
這個講解主要是用在bs4中的css選擇器;至於pyquery可以看這個

元素選擇器

選取html中的元素,如p,div;
.select('p')
例項

soup = BeautifulSoup(html_sourse,'lxml')
element = soup.select('p')
print(element,type(element)) # <class 'bs4.element.ResultSet'>

類選擇器

.class;div.class
例項

#  <class 'bs4.element.ResultSet'>
lei = soup.select('.ir___QwEG') # 這樣所選的話並不會把含有該類的標籤打印出來,就是不列印div標籤,下方列印
print('選取所有該類的元素',lei,type(lei))
div_lei = soup.select('div.ir___QwEG') # 中間不用空行
print('選取所有該類的元素',div_lei,type(div_lei)) # <class 'bs4.element.ResultSet'>

ID選擇器

與類選擇器不同之處在於ID選擇器是以"#"開頭

select_id = soup.select('#backtop')
select_a_id = soup.select('a#backtop')
print(select_id,type(select_id)) # <class 'bs4.element.ResultSet'>
print(select_a_id,type(select_a_id)) # <class 'bs4.element.ResultSet'>

屬性選擇器

如果希望選擇有某個屬性的元素,則可以使用屬性選擇器,不僅侷限於id和class屬性。
如:target屬性

# 報錯,貌似bs4中的select無法使用css3新增的屬性選擇器
# TypeError: select() missing 1 required positional argument: 'selector'
select_attr = soup.select(target="_blank") # 選擇所有含有target屬性的元素
# select_attr_val = soup.select('target="_blank"') # 選擇所有含有target="_blank"的元素

既然無法用,那就講解下,屬性選擇器符號的運用(target是html標籤中的屬性,同理也可為其他屬性)

[target~="_blank"]選擇屬性target包含 _blank的元素
[target^="_blank"]選擇屬性target以 _blank開頭的元素
a[target] 選擇所有含有target屬性的a的元素

後代選擇器;採用空格

element_houdai = soup.select('p input')# 選擇所有p元素下的所有input元素
print(element_houdai,type(element_houdai)) # <class 'bs4.element.ResultSet'> 

子元素選擇器;採用大於號 >

element_son = soup.select('p>input') # 選擇所有p元素下的所有input子元素
print(element_son,type(element_son))  # <class 'bs4.element.ResultSet'> 

相鄰兄弟選擇器;採用加號 +

element_brother = soup.select('p+a') # 選擇緊跟在p元素後面的所有兄弟a元素
print(element_brother,type(element_brother)) # <class 'bs4.element.ResultSet'> 

按效果實現來說後代選擇器和子元素選擇器很像

bs4一般一開始的使用

bs4建立<class 'bs4.BeautifulSoup'>物件的方法

from bs4 import BeautifulSoup
f = open('test.html','r',encoding='utf-8')
html_sourse = f.read()
f.close()
# 直接通過字串進行建立
soup = BeautifulSoup(html_sourse,'lxml')

# 通過開啟檔案來建立
soup1 = BeautifulSoup(open('test.html',encoding='utf-8'))
print(soup1.prettify())
print(type(soup),type(soup1)) # <class 'bs4.BeautifulSoup'> <class 'bs4.BeautifulSoup'>

bs4的其他資料https://www.cnblogs.com/wkhzwmr/p/15230635.html

努力拼搏吧,不要害怕,不要去規劃,不要迷茫。但你一定要在路上一直的走下去,儘管可能停滯不前,但也要走。