首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Scrapy问题

Scrapy问题
EN

Stack Overflow用户
提问于 2009-11-28 01:12:11
回答 4查看 8.5K关注 0票数 9

我正在尝试让SgmlLinkExtractor正常工作。

签名如下:

代码语言:javascript
复制
SgmlLinkExtractor(allow=(), deny=(), allow_domains=(), deny_domains=(), restrict_xpaths(), tags=('a', 'area'), attrs=('href'), canonicalize=True, unique=True, process_value=None)

我只是在使用allow=()

所以,我进入

代码语言:javascript
复制
rules = (Rule(SgmlLinkExtractor(allow=("/aadler/", )), callback='parse'),)

因此,初始url是'http://www.whitecase.com/jacevedo/',我正在输入allow=('/aadler',),并期望'/aadler/'也会被扫描。相反,爬行器扫描初始url,然后关闭:

代码语言:javascript
复制
[wcase] INFO: Domain opened
[wcase] DEBUG: Crawled </jacevedo/> (referer: <None>)
[wcase] INFO: Passed NuItem(school=[u'JD, ', u'Columbia Law School, Harlan Fiske Stone Scholar, Parker School Recognition of Achievement in International and Foreign Law, ', u'2005'])
[wcase] INFO: Closing domain (finished)

我在这里做错了什么?

这里有没有成功使用Scrapy的人可以帮我完成这个爬虫?

谢谢你的帮助。

我在下面包含了爬行器的代码:

代码语言:javascript
复制
from scrapy.contrib.spiders import CrawlSpider, Rule
from scrapy.contrib.linkextractors.sgml import SgmlLinkExtractor
from scrapy.selector import HtmlXPathSelector
from scrapy.item import Item
from Nu.items import NuItem
from urls import u

class NuSpider(CrawlSpider):
    domain_name = "wcase"
    start_urls = ['xxxxxx/jacevedo/']

    rules = (Rule(SgmlLinkExtractor(allow=("/aadler/", )), callback='parse'),)

    def parse(self, response):
        hxs = HtmlXPathSelector(response)

        item = NuItem()
        item['school'] = hxs.select('//td[@class="mainColumnTDa"]').re('(?<=(JD,\s))(.*?)(\d+)')
        return item

SPIDER = NuSpider()

注意:所以不会让我张贴超过1个网址,因此替换初始网址为必要的。真对不起。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2009-11-30 16:33:51

您正在覆盖它所显示的"parse“方法。"parse",是CrawlSpider中用于跟踪链接的私有方法。

票数 10
EN

Stack Overflow用户

发布于 2011-10-25 18:04:30

如果您查看文档,就会清楚地显示"Warning“。

“编写爬网爬网程序规则时,请避免使用parse as callback,因为爬网爬网程序使用parse方法本身来实现其逻辑。因此,如果覆盖parse方法,爬网爬网程序将不再工作。”

url for verification

票数 3
EN

Stack Overflow用户

发布于 2009-11-28 02:48:51

allow=(r'/aadler/',...

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

https://stackoverflow.com/questions/1809817

复制
相关文章

相似问题

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