scrapy 爬虫执行之前 如何运行自定义的函数来初始化一些数据?

已邀请:

低调的哥哥 - 不想默默无闻

赞同来自:

如下代码:
可以在类中 重写一个 __init__(self) 函数来执行一些初始化的操作。
代码中为了获取色影无忌网页中到底有多少个子页。 然后传送到爬虫parse函数进行使用。 不然在parse中定义这样的函数会大大降低执行的效率。
 
from scrapy.spiders import Rule
from scrapy.spiders import CrawlSpider
from scrapy import Request
import re
import urllib2
class AutoCrawl_Base(CrawlSpider):
name = "xitek_base"
allowed_domains=['photo.xitek.com']
start_urls=['http://photo.xitek.com/style/0/p/1']
rules = [Rule(LinkExtractor(allow=['/style/0/p/\d+']),'parse_link')]

def __init__(self):
#resp=Request(url='http://photo.xitek.com/style/0/p/1')
#self.page=self.get_page()
#print resp.url
#print self.page
self.page=self.get_page()
print "INIT"*10
#print p

def parse(self, response):
print "under parse_link base"
url=response.url
print url
#yield Request(url=url,callback='parse')

def get_page(self):
req=urllib2.Request(url="http://photo.xitek.com/style/0/p/1";)
result=urllib2.urlopen(req).read()
p=re.compile('<a class=\'blast\' href=\'/style/0/p/(\d+)\' >')
page=p.findall(result)
print type(page)
if page:
print page[0]
return page[0]
#print page[0]
#return page[0]

要回复问题请先登录注册