3
Scrapy嵌套頁我與嵌套頁爬行掙扎。爬行
我只得到了項目以作爲第一抓取的頁面項目計數。
網站的結構會是這樣。
- 抓取品牌 - 品牌鏈接
- 使用品牌鏈接去抓取模型和模型鏈接
- 使用型號鏈接去抓取特定的公告和它的屬性。
假設品牌A有2個型號,第一個型號有11個公告,第二個型號有9個.B品牌有3個型號,每個型號有5個公告。
在上面的例子我需要獲得各個公告爲單獨的項目(共35個),但代替的是我得到物品號碼作爲品牌等品牌A與第一公告,然後用第一次公告B品牌。
class SiteSpider(CrawlSpider):
log.start(logfile="log.txt", loglevel="DEBUG", logstdout=None)
name = "site"
#download_delay = 2
allowed_domains = ['site.com']
start_urls = ['http://www.site.com/search.php?c=1111']
items = {}
def parse(self, response):
sel = Selector(response)
#requests =[]
brands = sel.xpath("//li[@class='class_11']")
for brand in brands:
item = SiteItem()
url = brand.xpath('a/@href')[0].extract()
item['marka'] = brand.xpath("a/text()")[0].extract()
item['marka_link'] = brand.xpath('a/@href')[0].extract()
request = Request("http://www.site.com"+url,callback=self.parse_model, meta={'item':item})
# requests.append(request)
#
yield request
def parse_model(self, response):
sel = Selector(response)
models = sel.xpath("//li[@class='class_12']")
for model in models:
item = SiteUtem(response.meta["item"])
url2 = model.xpath('a/@href')[0].extract()
item ['model'] = model.xpath("a/text()")[0].extract()
item ['model_link'] = url2
return item
你能幫助這個noobie用僞代碼來實現嗎?我猜想我在基礎層面犯了一個錯誤。
嗨保羅, 謝謝你的關心。我添加了我試圖實現的代碼。 我做它一步一步的做法,因爲我是新來的Python和scrapy。 在第一個解析函數中,我試圖獲得品牌和品牌的鏈接。我能夠做到這一點,並獲得品牌的完整列表。但訣竅是它會將品種數量作爲品牌數量。 它看起來像我想實現算法的問題。 – ielapoc