Python 调试:已爬网(404)

Python 调试:已爬网(404),python,scrapy,Python,Scrapy,这是我的代码: # -*- 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, r

这是我的代码:

# -*- 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)
我在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)
2020-04-27 10:54:50[scrapy.core.engine]调试:爬网(404)(参考:无)
2020-04-27 10:54:50[碎片堆芯引擎]调试:爬网(200)(参考:无)

那么我如何才能消除这个错误呢?

也许你的ip被网站禁止了,你还需要添加一些cookie来抓取你需要的数据。

http状态码404被接收,因为Scrapy默认检查/robots.txt。在您的情况下,此站点不存在,因此收到404,但这不会产生任何影响。如果您不想检查robots.txt,可以在settings.py中设置ROBOTSTXT_OBEY=False

然后成功访问网站(http statuscode200)。不会打印任何内容,因为根据xpath选择,不会选择任何内容。您必须修复xpath选择

如果您想测试不同的xpath或css选择,以了解如何获取所需内容,您可能需要使用交互式scrapy shell:
scrapy shell”http://money.finance.sina.com.cn/mkt/“


您可以在中找到scrapy shell会话的示例。

这些只是调试消息,告诉您当scrapy尝试访问这些URL时发生了什么。不是错误消息。