получать при попытке разобрать страницу с помощью scrapy - PullRequest
0 голосов
/ 08 ноября 2018

Когда я пытаюсь получить весь контент страницы, я получаю эту ошибку в консоли

  2018-11-08 20:55:34 [scrapy.core.engine] INFO: Spider opened
2018-11-08 20:55:34 [scrapy.extensions.logstats] INFO: Crawled 0 pages (at 0 pages/min), scraped 0 items (at 0 items/min)
2018-11-08 20:55:34 [scrapy.extensions.telnet] DEBUG: Telnet console listening on 127.0.0.1:6023
2018-11-08 20:55:34 [scrapy.core.engine] ERROR: Error while obtaining start requests
Traceback (most recent call last):
  File "c:\python36\lib\site-packages\scrapy\core\engine.py", line 127, in _next_request
    request = next(slot.start_requests)
  File "c:\python36\lib\site-packages\scrapy\spiders\__init__.py", line 83, in start_requests
    yield Request(url, dont_filter=True)
  File "c:\python36\lib\site-packages\scrapy\http\request\__init__.py", line 25, in __init__
    self._set_url(url)
  File "c:\python36\lib\site-packages\scrapy\http\request\__init__.py", line 62, in _set_url
    raise ValueError('Missing scheme in request url: %s' % self._url)

Вот так выглядит мой код

import scrapy

class Shopee(scrapy.Spider):

    name = 'Shopee'
    start_urls = ['http://www.shopee.sg/Games-Hobbies-cat.14']


    def parse(self, response):
        print(response.text)

1 Ответ

0 голосов
/ 08 февраля 2019

Сообщение об ошибке в вашем сообщении связано с отсутствующим http(s):// в start_urls. Я полагаю, вы забыли обновить сообщение об ошибке при обновлении кода.

Но после запуска вашего кода кажется, что этот сайт блокирует клиентов на основе User-Agent. Попробуйте использовать строку user-agent браузера. Например:

name = 'Shopee'
start_urls = ['http://www.shopee.sg/Games-Hobbies-cat.14']
custom_settings = {
    'DEFAULT_REQUEST_HEADERS': {
        'User-Agent': (
            'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_3) AppleWebKit/537.75.14'
            ' (KHTML, like Gecko) Version/7.0.3 Safari/7046A194A'
        )
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...