首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >crawlSpider似乎没有遵循规则

crawlSpider似乎没有遵循规则
EN

Stack Overflow用户
提问于 2015-12-17 17:37:00
回答 1查看 188关注 0票数 0

这是我的密码。实际上,我遵循了"用Scrapy递归抓取网页“中的例子,似乎我在某个地方犯了一个错误。

有人能帮我找到吗?快把我逼疯了,我只想要所有结果页的结果。相反,它给了我第1页的结果。

这是我的密码:

代码语言:javascript
复制
import scrapy

from scrapy.selector import Selector
from scrapy.spiders import CrawlSpider, Rule
from scrapy.http.request import Request
from scrapy.contrib.linkextractors.sgml import SgmlLinkExtractor

from githubScrape.items import GithubscrapeItem


class GithubSpider(CrawlSpider):
    name = "github2"
    allowed_domains = ["github.com"]

    rules = (
        Rule(SgmlLinkExtractor(allow=(), restrict_xpaths=('//*[contains(@class, "next_page")]')), callback='parse_items', follow=True),
    )

    def start_requests(self):

        baseURL = 'https://github.com/search?utf8=%E2%9C%93&q=eagle+SYSTEM+extension%3Asch+size%3A'
        for i in range(10000, 20000, +5000):
            url = baseURL+str(i+1)+".."+str(i+5000)+'&type=Code&ref=searchresults'
            print "URL:",url
            yield Request(url, callback=self.parse_items)


    def parse_items(self, response):

        hxs = Selector(response)
        resultParagraphs = hxs.xpath('//div[contains(@id,"code_search_results")]//p[contains(@class, "title")]')

        items = []
        for p in resultParagraphs:
            hrefs = p.xpath('a/@href').extract()
            projectURL = hrefs[0]
            schemeURL = hrefs[1]
            lastIndexedOn = p.xpath('.//span/time/@datetime').extract()

            i = GithubscrapeItem()
            i['counter'] = self.count
            i['projectURL'] = projectURL
            i['schemeURL'] = schemeURL
            i['lastIndexedOn'] = lastIndexedOn
            items.append(i)
        return(items)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-12-17 22:41:56

我没有在您传递的链接上找到您的代码,但我认为问题是您从未使用这些规则。

Scrapy通过调用start_requests方法开始爬行,但是规则被编译并在parse方法上使用,因为您的请求直接从start_requestsparse_items

如果希望在该级别上应用规则,可以删除start_requests方法上的start_requests

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

https://stackoverflow.com/questions/34340875

复制
相关文章

相似问题

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