Opportunistic communications have been extensively studied in the last few years, with special emphasis on the optimal trade-offs between the resources needed to operate such systems and the performance experienced by the end-users. We focus in this work on application scenarios, in which users exploit opportunistic communications to exchange and diffuse data of potential interest. We assume a data-centric architecture, in which users would like to receive messages whose content matches a set of interests they expressed. We propose a data diffusion scheme based on the combination of two features: (i) interest-driven one-hop data exchange (upon a transmission opportunity, a node requests data matching a set of interests) (ii) neighbourhood-based data conveyance (each node maintains a list of the most interesting contents for its nearest neighbours and looks actively for such kind of data). An algorithmic solution is proposed, together with a protocol implementing it. The performance of the proposed scheme is evaluated by simulating the data diffusion process, exploiting contact traces and interests lists gathered through real-life experiments.