Соедините базовый URL с относительным URL в scrapy - PullRequest
0 голосов
/ 04 октября 2018

Я новичок в питоне и скрапе.У меня проблемы с присоединением базового URL к удаленной ссылке.Iv попробовал несколько предложений, но, вероятно, выполнил их неправильно

def parse(self, response):
    for ad_links in response.xpath('//div[@class="view"][1]//a'):
        yield {
            'title': item.xpath('text()').extract(),
            relative_url = item.xpath('@href').extract(),
            'link': response.urljoin(relative_url),
            }

Любые предложения будут очень признательны Спасибо

1 Ответ

0 голосов
/ 04 октября 2018

Вы не можете создать экземпляр переменной внутри словаря, который вы приводите, это не имеет смысла.

И обязательно поймите разницу между extract () и extract_first (), у меня такое ощущение, что extract_first - этометод, чтобы использовать здесь.См. документацию .

Что это за переменная элемента?Должно ли быть ad_links, верно?

Попробуйте это:

def parse(self, response):
    for ad_links in response.xpath('//div[@class="view"][1]//a'):
        relative_url = ad_links.xpath('@href').extract_first()
        yield {
            'title': ad_links.xpath('text()').extract_first(),
            'link': response.urljoin(relative_url),
            }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...