2014-06-21 2 views
1

Я просто хотел узнать, есть ли способ, чтобы добавить num в tr [1], например это -> tr [1 + num] ... I попробовал tr [1 + 9], и он работал, но когда я изменил его на num, конечно, это дало мне ошибку. Благодаря!Scrapy: добавление переменной в массив xpath

items = [] 
    num = 1 
    hxs = HtmlXPathSelector(response) 
    dir = hxs.select('/html/body/div/table') 
    for i, tr in enumerate(hxs.select('/html/body/div/table//tr[count(./td)=2]')): 
     if (i % 7 == 0): 
      if (i > 0): items.append(item) 
      item = CraigslistSampleItem() 
     idx = i % 7 
     if(idx == 0): 
      item[rn[idx]] = tr.select('./td[2]//text()').extract()[0] 
      item ["title"] = dir.select('//tr[num]/td[2]/b/text()').extract() 
      num = num + 9 
+0

какую ошибку вы получили? –

+1

дать xpath как 'select ('// tr [% s]/td [2]/b/text()'% str (num))' – Vipul

+0

индекс списка вне диапазона. единственная проблема для меня - tr [num], поскольку tr [1 + 9] работает ... – chano

ответ

1

дает в select('//tr[%s]/td[2]/b/text()'%str(num)) XPath

num является переменным и Num внутри '' не имеет никакого смысла

+0

им не так хорошо с python действительно ... – chano

+1

:) SO - прекрасное место. Я тоже научился scrapy и селен для веб-соскабливания в прошлом месяце – Vipul

Смежные вопросы