python 正則空格\xa0實錄 與xpath取 div 里面的含多個標簽的所有文字


 

業余玩爬蟲時,由原先的原生寫法 改為 scrapy框架了,使用自帶的selector時,xpath配合正則來抓取回復數和閱讀數的時候,遇到的小問題,mark下。

   首先獲取到 我需要的數據塊,(我用scrapy shell調試的)

對應的html文檔是:

 

 關於 這個 空格&nbsp 被爬成了\xa0的問題,我找了一些資料,這里說下原因:

\xa0 叫做不間斷空白符,英文描述non-breaking space,阻止在此處自動換行和阻止多個空格被壓縮成一個,屬於 latin1 (ISO/IEC_8859-1)中的擴展字符集字符,我之所以用下列方法去不掉,是因為我們平常用的更多的 空格是\x20,

如下方式取匹配我想要的閱讀數和回復數都失敗了

這里面就是因為 空格字符的影響,所以后來用針對空格的辦法,/s 就沒問題了

收集了網上的對付這種問題一些辦法:如下

string.replace(u'\xa0', u' ') ;  strip()等,

 附:unicode標點對應表,http://www.unicode.org/charts/PDF/U3000.pdf

 

2.因為有些加粗標題被包含<b></b>標簽下,如下:

 

 

 

 他在 多了一級的標簽,用text()就取不到了,

但是xpath('string(.)')這個可以取出所有的文字元素,不包括html標簽,

以上就是這次 業余抓取的小實錄,好了,去擁抱下世界上最好的語言了   -。-

 
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM