ОТЛАДКА: Ползучий (404) - PullRequest
       9

ОТЛАДКА: Ползучий (404)

0 голосов
/ 27 апреля 2020

Это мой код:

# -*- coding: utf-8 -*-
import scrapy


class SinasharesSpider(scrapy.Spider):
    name = 'SinaShares'
    allowed_domains = ['money.finance.sina.com.cn/mkt/']
    start_urls = ['http://money.finance.sina.com.cn/mkt//']

    def parse(self, response):
        contents=response.xpath('//*[@id="list_amount_ctrl"]/a[2]/@class').extract()
        print(contents)

И я установил user-agent в setting.py.

Тогда я получаю ошибку:

2020-04-27 10:54:50 [scrapy.core.engine] DEBUG: Crawled (404) <GET http://money.finance.sina.com.cn/robots.txt> (referer: None)
2020-04-27 10:54:50 [scrapy.core.engine] DEBUG: Crawled (200) <GET http://money.finance.sina.com.cn/mkt//> (referer: None)

Так как я могу устранить эту ошибку?

Ответы [ 2 ]

0 голосов
/ 27 апреля 2020

http-статус-код 404 получен, потому что Scrapy по умолчанию проверяет /robots.txt. В вашем случае этот сайт не существует, и поэтому 404 получен, но это не имеет никакого влияния. Если вы хотите избежать проверки файла robots.txt, вы можете установить ROBOTSTXT_OBEY = False в settings.py.

Затем веб-сайт успешно доступен (http-код состояния 200 ). Контент не печатается, потому что на основании вашего xpath-выбора ничего не выбрано. Вы должны исправить свой xpath-выбор.

Если вы хотите протестировать различные xpath- или css -выборы, чтобы выяснить, как получить желаемый контент, вы можете использовать интерактивную оболочку scrapy:
scrapy shell "http://money.finance.sina.com.cn/mkt/"

Пример сеанса Scrapy Shell можно найти в официальной документации Scrapy здесь .

0 голосов
/ 27 апреля 2020

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...