2017-10-05 85 views
-3

我有一個網站的URL像www.example.com如何提取給定網站的社交信息?

我想收集這個網站的社會信息,如:facebook的網址(facebook.com/example),推特網址(twitter.com/example)等,如果可以在任何地方,在網站的任何頁面。

如何完成這個任務,建議任何教程,博客,技術..

回答

2

既然你不知道到底哪裏(哪個網站的頁面),這些鏈接的位置,你可能想你基地蜘蛛CrawlSpider類。這樣的蜘蛛可以讓你定義鏈接提取和網站導航的規則。看到這個小例子:

from scrapy.spiders import CrawlSpider, Rule 
from scrapy.linkextractors import LinkExtractor 

class MySpider(CrawlSpider): 
    name = 'example.com' 
    start_urls = ['http://www.example.com'] 

    rules = (
     Rule(LinkExtractor(allow_domains=('example.com',)), callback='parse_page', follow=True), 
    ) 

    def parse_page(self, response): 
     item = dict() 
     item['page'] = response.url 
     item['facebook_urls'] = response.xpath('//a[contains(@href, "facebook.com")]/@href').extract() 
     item['twitter_urls'] = response.xpath('//a[contains(@href, "twitter.com")]/@href').extract() 
     yield item 

這種蜘蛛會爬example.com網站的所有網頁,並提取含facebook.comtwitter.com網址。

+0

有幫助,但我只需要同一網站的社交網址。如果網站擁有多個不同域名(網站)的社交網站,就像博客一樣 –

+0

如果您在具體示例中更詳細地指定了需求,則會更容易。提供您想要檢索的網站和信息。 –

+0

實際上我有大約10000個網址,我想爲所有人收集社交地址,所以我想要這樣做! –

0

最有可能要 1.搜索在HTML頁面佈局的頁眉/頁腳鏈接。因爲這是他們最常見的地方。 2.您可以在同一網站的其他頁面上找到鏈接並參考。 3.您可以檢查網站/組織的名稱是否在鏈接中。但是這個名稱可能會有所不同,或者使用絕對陌生的手柄並不可靠。

這就是我能想到的。