diff options
| author | Yuval Adam <yuv.adm@gmail.com> | 2014-03-29 03:01:24 +0300 |
|---|---|---|
| committer | Yuval Adam <yuv.adm@gmail.com> | 2014-03-29 03:01:24 +0300 |
| commit | 9e9233f858d45c613148e51c89a2868b2334ff22 (patch) | |
| tree | 3e1c1b1e19f0b85bc253db8da0f1489bbd49f454 | |
| parent | 917e5380cd000db7cf1d2f3f9eb594dbf86a97dc (diff) | |
Crawling categories works
| -rw-r--r-- | israblog/israblog/spiders/blogs.py | 27 |
1 files changed, 17 insertions, 10 deletions
diff --git a/israblog/israblog/spiders/blogs.py b/israblog/israblog/spiders/blogs.py index b7aadc1..03f03fe 100644 --- a/israblog/israblog/spiders/blogs.py +++ b/israblog/israblog/spiders/blogs.py @@ -1,3 +1,5 @@ +import re + from datetime import datetime from scrapy import log from scrapy.contrib.spiders import CrawlSpider, Rule @@ -7,10 +9,10 @@ from scrapy.contrib.linkextractors.sgml import SgmlLinkExtractor class IsrablogSpider(CrawlSpider): name = 'israblog' allowed_domains = ['israblog.nana10.co.il'] - rules = [Rule(SgmlLinkExtractor(allow=[ - '/blogread.asp?blog=\d+', - '/blogread.asp?blog=\d+&year=\d+&month=\d+' - ]), 'parse_blog')] + rules = ( + Rule(SgmlLinkExtractor(allow=['blogread.asp?blog=\d+(&year=\d+&month=\d+)?']), callback='parse_blog'), + Rule(SgmlLinkExtractor(allow=['/Category/\d+/.*',]), follow=True), + ) start_urls = [ 'http://israblog.nana10.co.il/', 'http://israblog.nana10.co.il/lastblogs.aspx', @@ -18,12 +20,17 @@ class IsrablogSpider(CrawlSpider): 'http://israblog.nana10.co.il/Categories', ] + def parse_start_url(self, response): + yield self.parse_blog(response) + def parse_blog(self, response): self.log(response.url) - blog, year, month = re.match(r'/blogread.asp\?blog=(\d+)(?:&year=(\d+)&month=(\d+))?', response.url) - if not year and not month: - now = datetime.now() - year = now.year() - month = now.month() - self.log(blog, year, month) + match = re.match(r'/blogread.asp\?blog=(\d+)(?:&year=(\d+)&month=(\d+))?', response.url) + if match: + blog, year, month = match.groups() + if not year and not month: + now = datetime.now() + year = now.year() + month = now.month() + self.log(blog, year, month) return None |
