首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么我的scrapy没有抓到任何东西?

为什么我的scrapy没有抓到任何东西?
EN

Stack Overflow用户
提问于 2017-02-06 16:07:23
回答 2查看 92关注 0票数 0

这是我的蜘蛛。在我执行了蜘蛛之后,什么也没有出现。我不知道为什么它是空白的。我觉得问题在于收益和回报,但我不知道如何改变它。

代码语言:javascript
复制
import scrapy
from scrapy.http import Request
from scrapy import Selector
from CSDNBlog1.items import Csdnblog1Item

class CSDNBlogSpider(scrapy.Spider):
    name='CSDNBlog1'
    download_delay=1
    allowed_domains=['blog.csdn.net']
    starts_urls=['http://blog.csdn.net/u012150179/article/details/117490171']

    def parse(self,response):
        sel=Selector(response)
        items=[]
        item=Csdnblog1Item()
        aricle_url=str(response.url)
        article_name=sel.xpath('//div[@id="article_details"]/div/h1/span/a/text()').extract()

        item['article_name']=[n.encode('utf-8') for n in article_name]
        item['article_url']=article_url.encode('utf-8')
        yield item


        urls=sel.xpath('//li[@class="next_article"]/a/@href').extract()
        for url in urls:
            print(url)
            url="http://blog.csdn.net"+url
            print(url)
            yield Request(url,callback=self.parse)

这是我的蜘蛛情况,它什么也没做。

代码语言:javascript
复制
2017-02-06 15:35:46 [scrapy] INFO: Spider opened
2017-02-06 15:35:46 [scrapy] INFO: Crawled 0 pages (at 0 pages/min), scraped     0 
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-02-15 20:09:42

您的start_url不再工作,并且yield语句处于错误的位置。请尝试使用以下代码:

代码语言:javascript
复制
import scrapy
from CSDNBlog1.items import Csdnblog1Item
from scrapy import Selector

class Csdnblog1Spider(scrapy.Spider):
    name = "CSDNBlog2"
    download_delay=1
    allowed_domains = ["http://blog.csdn.net/"]
    start_urls = ['http://blog.csdn.net/u012150179/article/details/37306629/']

    def parse(self, response):
        item=Csdnblog1Item()
        sel=Selector(response)
        item['project'] = self.settings.get('BOT_NAME')

        article_url=str(response.url)
        article_name=sel.xpath('//div[@id="article_details"]/div/h1/span/a/text()').extract()

        item['article_name']=[n.encode('utf-8') for n in article_name]
        item['article_url']=article_url.encode('utf-8')

        urls=sel.xpath('//li[@class="next_article"]/a/@href').extract()
        for url in urls:
            print(url)
            url="http://blog.csdn.net"+url
            print(url)
        yield scrapy.Request(url,callback=self.parse)

    return item
票数 0
EN

Stack Overflow用户

发布于 2017-02-06 16:42:44

代码语言:javascript
复制
In [1]: fetch('http://blog.csdn.net/u012150179/article/details/117490171')
2017-02-06 16:41:51 [scrapy.downloadermiddlewares.redirect] DEBUG: Redirecting (302) to <GET http://blog.csdn.net/error/404.html?from=http%3a%2f%2fblog.csdn.net%2fu012150179%2farticle%2fdetails%2f117490171> from <GET http://blog.csdn.net/u012150179/article/details/117490171>
2017-02-06 16:41:51 [scrapy.core.engine] DEBUG: Crawled (404) <GET http://blog.csdn.net/error/404.html?from=http%3a%2f%2fblog.csdn.net%2fu012150179%2farticle%2fdetails%2f117490171> (referer: None)

确保你得到了正确的start_url

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42062976

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档