账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    使用scrapy无法抓取数据
    36
    0

    代码如下:

    from scrapy.spiders import CrawlSpider
    
    class douban(CrawlSpider):
        name = 'douban'
    
        start_urls = ['https://movie.douban.com/chart']
    
        def parser(self,reponse):
            print reponse.body

    main函数代码

    from scrapy import cmdline
    cmdline.execute('scrapy crawl douban'.split())

    信息如下:

    2017-08-18 00:08:07 [scrapy.utils.log] INFO: Scrapy 1.4.0 started (bot: douban)
    2017-08-18 00:08:07 [scrapy.utils.log] INFO: Overridden settings: {'NEWSPIDER_MODULE': 'douban.spiders', 'SPIDER_MODULES': ['douban.spiders'], 'BOT_NAME': 'douban'}
    2017-08-18 00:08:07 [scrapy.middleware] INFO: Enabled extensions:
    ['scrapy.extensions.logstats.LogStats',
     'scrapy.extensions.telnet.TelnetConsole',
     'scrapy.extensions.corestats.CoreStats']
    2017-08-18 00:08:09 [scrapy.middleware] INFO: Enabled downloader middlewares:
    ['scrapy.downloadermiddlewares.httpauth.HttpAuthMiddleware',
     'scrapy.downloadermiddlewares.downloadtimeout.DownloadTimeoutMiddleware',
     'scrapy.downloadermiddlewares.defaultheaders.DefaultHeadersMiddleware',
     'scrapy.downloadermiddlewares.useragent.UserAgentMiddleware',
     'scrapy.downloadermiddlewares.retry.RetryMiddleware',
     'scrapy.downloadermiddlewares.redirect.MetaRefreshMiddleware',
     'scrapy.downloadermiddlewares.httpcompression.HttpCompressionMiddleware',
     'scrapy.downloadermiddlewares.redirect.RedirectMiddleware',
     'scrapy.downloadermiddlewares.cookies.CookiesMiddleware',
     'scrapy.downloadermiddlewares.httpproxy.HttpProxyMiddleware',
     'scrapy.downloadermiddlewares.stats.DownloaderStats']
    2017-08-18 00:08:09 [scrapy.middleware] INFO: Enabled spider middlewares:
    ['scrapy.spidermiddlewares.httperror.HttpErrorMiddleware',
     'scrapy.spidermiddlewares.offsite.OffsiteMiddleware',
     'scrapy.spidermiddlewares.referer.RefererMiddleware',
     'scrapy.spidermiddlewares.urllength.UrlLengthMiddleware',
     'scrapy.spidermiddlewares.depth.DepthMiddleware']
    2017-08-18 00:08:09 [scrapy.middleware] INFO: Enabled item pipelines:
    []
    2017-08-18 00:08:09 [scrapy.core.engine] INFO: Spider opened
    2017-08-18 00:08:10 [scrapy.extensions.logstats] INFO: Crawled 0 pages (at 0 pages/min), scraped 0 items (at 0 items/min)
    2017-08-18 00:08:10 [scrapy.extensions.telnet] DEBUG: Telnet console listening on 127.0.0.1:6023
    2017-08-18 00:08:10 [scrapy.core.engine] DEBUG: Crawled (403) <GET https://movie.douban.com/chart>; (referer: None)
    2017-08-18 00:08:10 [scrapy.spidermiddlewares.httperror] INFO: Ignoring response <403 https://movie.douban.com/chart>;: HTTP status code is not handled or not allowed
    2017-08-18 00:08:10 [scrapy.core.engine] INFO: Closing spider (finished)
    2017-08-18 00:08:10 [scrapy.statscollectors] INFO: Dumping Scrapy stats:
    {'downloader/request_bytes': 219,
     'downloader/request_count': 1,
     'downloader/request_method_count/GET': 1,
     'downloader/response_bytes': 248,
     'downloader/response_count': 1,
     'downloader/response_status_count/403': 1,
     'finish_reason': 'finished',
     'finish_time': datetime.datetime(2017, 8, 17, 16, 8, 10, 918000),
     'httperror/response_ignored_count': 1,
     'httperror/response_ignored_status_count/403': 1,
     'log_count/DEBUG': 2,
     'log_count/INFO': 8,
     'response_received_count': 1,
     'scheduler/dequeued': 1,
     'scheduler/dequeued/memory': 1,
     'scheduler/enqueued': 1,
     'scheduler/enqueued/memory': 1,
     'start_time': datetime.datetime(2017, 8, 17, 16, 8, 10, 118000)}
    2017-08-18 00:08:10 [scrapy.core.engine] INFO: Spider closed (finished)
    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 林景明 普通会员 1楼

      Scrapy是一个Python爬虫框架,如果你使用scrapy无法抓取数据,可能有以下几个原因:

      1. 你使用的scrapy版本与实际网站不同。Scrapy 2.x版本引入了更强大的异步爬取能力,但是如果你使用的是2.x版本的scrapy,可能需要配合第三方库如Chardet等,才能实现爬取。

      2. 你使用的scrapy请求方法或请求头可能与实际网站不同。比如,有些网站使用GET请求,而有些网站使用POST请求。如果你使用的是GET请求,但实际网站使用的是POST请求,你可能需要在请求头中添加相应的请求方法和头。

      3. 你使用的scrapy库可能与实际网站的反爬机制不同。比如,有些网站使用了User-Agent头来限制爬虫的爬取行为。如果你使用的是Scrapy的User-Agent库,但实际网站使用了User-Agent头,你可能需要调整User-Agent头的设置。

      4. 你可能使用的爬虫配置不正确。比如,你可能没有设置正确的爬取模式、设置错误的采集器或采集器设置等。你可以查看Scrapy的文档,看看你的配置是否正确。

      5. 你可能使用的请求库不支持你的网站。比如,有些网站可能不支持Scrapy的请求库。你可以查看Scrapy的文档,看看你的请求库是否支持你的网站。

      希望以上信息对你有所帮助,如果你还有其他问题,欢迎继续提问。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部