我想在scrapy中使用正則表達式來查找頁面上的所有電子郵件地址。刪除重複的電子郵件
我使用這個代碼:
item["email"] = re.findall('[\w\.-][email protected][\w\.-]+', response.body)
幾乎完美的工作原理:它抓住所有的電子郵件,並讓他們給我。然而,我想要的是:即使有多個相同的電子郵件地址,它在實際解析之前也不會重複。
我越來越喜歡這個反應(這是正確的):
{'email': ['[email protected]',
'[email protected]',
'[email protected]',
'[email protected]',
'[email protected]']}
但是我想只顯示如果你想在如何拋出這將是
{'email': ['[email protected]',
'[email protected]',
'[email protected]']}
唯一地址只收集電子郵件,而不是,
'[email protected]'
這也有幫助。
謝謝大家!
你爲什麼要使用一個正則表達式解析響應
?似乎它可能更適合xpath或css選擇器。使用正則表達式解析HTML通常是一個糟糕的主意 –因爲這被使用在一個廣泛的爬蟲中,數據將存儲在不同的地方。所以沒有一個xpath不會工作 –