Python 刮痧蜘蛛坏了
由于到目前为止没有任何进展,我开始了一个新的项目Python 刮痧蜘蛛坏了,python,scrapy,Python,Scrapy,由于到目前为止没有任何进展,我开始了一个新的项目 python scrapy-ctl.py startproject Nu 我严格按照教程进行操作,创建了文件夹和一个新的爬行器 from scrapy.contrib.spiders import CrawlSpider, Rule from scrapy.contrib.linkextractors.sgml import SgmlLinkExtractor from scrapy.selector import HtmlXPathSelec
python scrapy-ctl.py startproject Nu
我严格按照教程进行操作,创建了文件夹和一个新的爬行器
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 = ['http://www.whitecase.com/aabbas/']
names = hxs.select('//td[@class="altRow"][1]/a/@href').re('/.a\w+')
u = names.pop()
rules = (Rule(SgmlLinkExtractor(allow=(u, )), callback='parse_item'),)
def parse(self, response):
self.log('Hi, this is an item page! %s' % response.url)
hxs = HtmlXPathSelector(response)
item = Item()
item['school'] = hxs.select('//td[@class="mainColumnTDa"]').re('(?<=(JD,\s))(.*?)(\d+)')
return item
SPIDER = NuSpider()
我明白了
其他的蜘蛛至少被斯帕奇认出来了,而这只不是。我做错了什么
谢谢你的帮助 您是否在scrapy_settings.py中的
spider_模块
列表中包含了spider
教程中没有任何地方写过你应该这样做,但你必须这样做。我相信你有语法错误。
name=hxs…
将不起作用,因为在hxs
对象之前没有定义
尝试运行
pythonyourproject/spider/domain.py
以获取语法错误。这两行代码看起来像是在引起麻烦:
u = names.pop()
rules = (Rule(SgmlLinkExtractor(allow=(u, )), callback='parse_item'),)
- 每次运行脚本时只遵循一条规则。考虑为每个URL创建一个规则。
- 您尚未创建
回调,这意味着该规则不执行任何操作。您定义的唯一回调是parse_项
,它更改了爬行器的默认行为parse
不喜欢重载其默认的CrawlSpider
方法。在文档或文档字符串中搜索parse
。您将看到,这是覆盖起始URL的默认parse\u start\u url
方法的首选方法parse
在定义之前被调用NuSpider.hxs
- 请同时检查scrapy的版本。最新版本使用“name”而不是“domain\u name”属性来唯一标识蜘蛛。您正在覆盖
parse
方法,而不是实现新的parse\u项
方法。您能否提供到教程的链接(如果在线)?这将是一个有趣的阅读:)是的,这是到爬行蜘蛛示例的链接:这是在创建项目时包含的:爬行器模块=['Nu.SPIDER'],但我不知道是否需要添加域名='wcase'?爬行器现在正在运行,但它只是扫描初始url,它不会转到允许的链接。见我的另一个问题
[Nu] ERROR: Could not find spider for domain: wcase
u = names.pop()
rules = (Rule(SgmlLinkExtractor(allow=(u, )), callback='parse_item'),)