2014-12-23 5 views
1

Я использую scrapy для того, чтобы развернуть весь сайт (allow_domains = mydomain.com). Теперь я хочу получить все внешние ссылки (в другие домены) с текущего URL-адреса. Как я могу интегрировать это в свой spider.py, чтобы получить список со всеми внешними URL-адресами?Scrapy получить все внешние ссылки URL-адреса

+0

Что вы понимаете, получив все внешние ссылки? все теги, которые перенаправляются в другой домен? –

+0

Я просто хочу, чтобы все [sometext] из текущего URL-адреса, который я обрабатываю. Я использую это Правило атм: правила = ( \t \t Правила (SgmlLinkExtractor(), обратный вызов = 'get_domain_data', следует = True), \t) – user3507915

+0

Какова проблема использования Scrapy ссылка экстрактора? –

ответ

1

Попробуйте использовать Link Extractors. Это может быть пример:

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 
+0

Хорошо, я уже использую SgmlLinkExtractor. Я думал, что есть еще одна утилита с Scrapy, чтобы получить внешние ссылки очень просто. Тогда я попробую его с xpath() – user3507915

+0

Всегда есть разные способы. Вы можете использовать xpath, чтобы получить все 'a/@ href' со страницы и проанализировать их некоторыми библиотеками, такими как' urlparse', чтобы извлечь домен и сравнить его с текущим доменом. это может быть примером (http://stackoverflow.com/questions/26998433/using-scrapy-to-extract-xhr-request/27000903#27000903) –

+0

В моем мышлении есть проблема. Я хочу только href = "x" с внешней целью. (Http://www.otherdomain.com). Но как я могу проверить их с относительными URL-адресами, если в атрибуте href нет домена? Есть идеи? – user3507915

Смежные вопросы