Hyperlink Scrapy获取URL的所有外部链接

Hyperlink Scrapy获取URL的所有外部链接,hyperlink,scrapy,external,Hyperlink,Scrapy,External,我使用scrapy爬行整个网站(allow_domains=mydomain.com)。现在我想从当前URL获取所有外部链接(到其他域)。如何将其集成到我的spider.py中以获得包含所有外部URL的列表?尝试使用。这可以是一个例子: from scrapy.contrib.linkextractors.sgml import SgmlLinkExtractor from scrapy.contrib.spiders import CrawlSpider, Rule from scrapy.i

我使用scrapy爬行整个网站(allow_domains=mydomain.com)。现在我想从当前URL获取所有外部链接(到其他域)。如何将其集成到我的spider.py中以获得包含所有外部URL的列表?

尝试使用。这可以是一个例子:

from scrapy.contrib.linkextractors.sgml import SgmlLinkExtractor
from scrapy.contrib.spiders import CrawlSpider, Rule
from scrapy.item import Item, Field


class MyItem(Item):
    url= Field()


class MySpider(CrawlSpider):
    name = 'twitter.com'
    allowed_domains = ['my-domain.com']
    start_urls = ['http://www.my-domain.com']

    rules = (Rule(SgmlLinkExtractor(), callback='parse_url', follow=False), )

    def parse_url(self, response):
        item = MyItem()
        item['url'] = response.url
        return item

获取所有外部链接是什么意思?正在重定向到另一个域的所有标记?我只希望所有标记都来自我处理的当前URL。我使用这个规则atm:rules=(Rule(SgmlLinkExtractor(),callback='get\u domain\u data',follow=True),)使用scrapy链接提取器有什么问题吗?好的,我已经使用了SgmlLinkExtractor。我认为有另一个使用Scrapy的util可以非常简单地获得外部链接。然后我用xpath()尝试它,总是有不同的方法。您可以使用xpath从页面获取所有
a/@href
,并通过一些库(如
urlparse
)对其进行分析,以提取域并将其与当前域进行比较。这可能是一个例子()我的想法有问题。我只想要href=“x”与外部目标。(). 但是,当href属性中没有域时,如何使用相对URL检查这些内容?知道吗?你的意思是当href属性类似于
href=“javascript:void()”
href=“\cat\link1”
时。对吧?对。我尝试过这样的东西,但是它不太好用://a[(包含(@href,'http://')或包含(@href,'https://'))和不包含(@href,“+self.domain+”)]/@href