1. 程式人生 > >XPATH 要想獲取的東西里不分段,不變成列表就用STRING(),不用TEXT()

XPATH 要想獲取的東西里不分段,不變成列表就用STRING(),不用TEXT()

簡單說一說:

requests配合xpath來抓網站資料的時候,不像selenium+xpath。

selenium有  find_element  find_elements,區別是帶S ,查詢第一個元素,和查詢所有元素。

requests只有xpath,簡單粗暴的直接查詢所有元素。所以tag1,要帶下標[0]來輸出第一個物件,並且用.text來輸出文字資訊。

tag2,帶下標[0]來輸出第一個物件,並且用.text來輸出文字資訊。但是由於物件中有<br>標籤,所以只能取得第一個<br>標籤前面的資料。

tag3,我們在xpath規則中加入.text()規則,取得這個標籤中的文字資訊。由於有<br>標籤,文字資訊會因為<br>而分割稱為列表。

我們可以自己重組列表,轉為字串:

b = [str(i) for i in tag3]
str = ''.join(b)
print('tag3-str-->',str)

或者不使用text()規則使用xpath('string(.)'):

print('tag2-->',tag2)
print('tag2[0]-string-->',tag2[0].xpath('string(.)'))
print('tag2[1]-string-->',tag2[1].xpath('string(.)'))

兩種方式都可以正常獲取td標籤中帶br標籤的資訊。