2012-07-30 86 views
0

我正在尋找正確的XPath表達式來搜索HTML頁面包含字符串的所有文本()文本():在比賽提取物,直到第一@domainPython的XPath來查找包含@domain

只是爲了獲取電子郵件地址 - 在左邊,直到在右邊的第一個空間的空間。

感謝

回答

1

此XPath查詢將獲得一個包含 '@domain' 的所有節點的文本

//*[contains(text(), '@domain')]/text() 

然後可以分析文本使用Python

提取電子郵件
>>> import re 
>>> re.findall(r'[\w\.][email protected]\.[\w\.]+', 'this is our info: [email protected]') 
['[email protected]'] 

UPDATE :

看起來像scrapyXPath選擇,我不知道:

>>> hxs.select('//a[contains(@href, "image")]/text()').re(r'Name:\s*(.*)') 
[u'My image 1', 
u'My image 2', 
u'My image 3', 
u'My image 4', 
u'My image 5'] 
+0

你能幫我解決我的問題嗎? 例如,如果這個字符串被提取:「這是我們的信息:[email protected] 結果應該只有[email protected] – DjangoPy 2012-07-30 14:52:13

+0

我已經添加了一個正則表達式的例子,它太簡單了,所以你可能要學習正則表達式和改進。有電子郵件地址的正則表達式的計算器例子很多。 – warvariuc 2012-07-30 14:59:42

+0

感謝! 是否有你所使用的findall的findall返回一個字符串的元組找到了一個理由嗎?(只是爲了找到所有的電子郵件?) – DjangoPy 2012-07-30 15:03:09