2017-10-05 16 views
-3

私はwww.example.comのようなウェブサイトのURLを持っていますどのように特定のウェブサイトから社会情報を抽出するのですか?

このウェブサイトから:facebook url(facebook.com/example)、twitter url(twitter.com/example)ウェブサイトの任意のページでどこでも利用可能ならば、このタスクを完了するためにどのように

、任意のチュートリアル、ブログ、技術を提案する。..

答えて

2

(ウェブサイトのどのページに)それらのリンクが置かれている場所を正確にあなたが知らないので、あなたはおそらくあなたをベースにしますスパイダーのCrawlSpiderクラス。このようなスパイダーでは、リンク抽出とナビゲーションのルールをWebサイトで定義できます。この最小限の例を参照してください:

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を含むURLを抽出します。

+0

有用ですが、私は同じウェブサイトだけの社会的なURLを欲しいです。問題は、異なるドメイン(ウェブサイト)の複数の社会的なURLを持つウェブサイトがブログに似ている場合に発生します。 –

+0

具体的な例で、詳細を指定した方がずっと簡単です。取得したいウェブサイトと情報を与えます。 –

+0

実際に私は約10000のURLを持っており、私はすべてのために社会的なアドレスを収集したいので、私はこれをやりたい! –

0

おそらく 1. htmlページレイアウトのヘッダー/フッターでリンクを検索します。それがそれらのための最も一般的な場所であるように。 2.同じサイトの他のページにある見つかったリンクと相互参照することができます。 3.サイト/組織の名前がリンクに含まれているかどうかを確認できます。しかし、この名前は信頼できる名前ではなく、絶対に奇妙なハンドルを使用するかもしれません。

これは私が考えることができるすべてです。

関連する問題