не получить от scrap - PullRequest
       24

не получить от scrap

1 голос
/ 08 июля 2019

В рамках своих исследований по питону я пытаюсь просмотреть главную страницу mail.ru на новостных лентах

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

import scrapy

class TestmailspidetSpider(scrapy.Spider):
    name = 'testmailspidet'
    allowed_domains = ['mail.ru']
    start_urls = ['http://mail.ru/']

    def parse(self, response):

    yield {
        'testing':response.xpath('//span[@class="i-link-deco i-inline"][position()=1]').extract_first()
    }

1 Ответ

1 голос
/ 08 июля 2019

Это запрещено robots.txt (https://mail.ru/robots.txt). Если вы все еще хотите очистить его, вам нужно установить ROBOTSTXT_OBEY в False. Вы можете включить это следующим образом:

custom_settings = {
    'ROBOTSTXT_OBEY': False,
}

Кроме того, xpath не дает никаких результатов - возможно, потому что контент загружается динамически. Вы можете проверить с помощью scrapy shell, как выглядит html-страница, которую выглядит как scrap: scrapy shell -s ROBOTSTXT_OBEY=False "http://mail.ru/". Xpath, получающий заголовки, может быть построен следующим образом: //*[@id="news:main:list"]//*[@class="news__list__item__link__text"]/text().

...