2017-09-26 113 views
0

我不得不做出一個刮刀,我不明白爲什麼它不工作...分頁(第二級) - scrapy蟒蛇

該網站有一個這樣的分頁:

<div class="pagination toolbarbloc"> 
     <ul> 
       <li class="active"><span>1</span></li> 
       <li><a href="...">2</a></li> 
       <li><a href="...">3</a></li> 
       <li><a href="...">4</a></li> 
       <li><a href="...">5</a></li> 
       <li><a class="end" href="...">>></li> 
     </ul> 
</div> 

的當你去下一頁時,班級「主動」動作,所以在第5頁中,它是班級活動最後一個之前的班車「李」! 我趕上應答器「禮」後,將項目與類「活動」這樣的:

next_page_url_xpath = '//div[@class="pagination toolbarbloc"]/ul/li[@class="active"]/following-sibling::li/a/@href' 

它完美地工作了5個第一頁...但它不工作去第6頁漁獲應答器「一」 帶班結束...

我嘗試:

try: 
     next_page_url_xpath = '//div[@class="pagination toolbarbloc"]/ul/li[@class="active"]/following-sibling::li/a/@href' 
     next_page_url = begin + response.xpath(next_page_url_xpath)[0].extract() 
    except (ValueError,IndexError): 
     next_page_url_xpath = '//div[@class="pagination toolbarbloc"]/ul/li/a[@class="end"]/@href' 
     next_page_url = begin + response.xpath(next_page_url_xpath)[0].extract() 

有人有一個想法? :) 謝謝你的幫助!

回答

0
import codecs 
from lxml import etree 

test_xml = """<div class="pagination toolbarbloc"> 
     <ul> 
       <li class="active"><span>1</span></li> 
       <li><a href="1href">2</a></li> 
       <li><a href="2href">3</a></li> 
       <li><a href="3href">4</a></li> 
       <li><a href="4href">5</a></li> 
       <li><a class="end" href="5href">>></li> 
     </ul> 
</div>""" 

tree = etree.HTML(test_xml) 
rep = tree.xpath('//div[@class="pagination toolbarbloc"]/ul/li/a/@href') 

print rep 
# ['1href', '2href', '3href', '4href', '5href'] 

我不知道我是否完全理解你所說的。如果你真的想要這樣的python函數,也許它可以幫助你。

+0

嗨!感謝您的幫助! 我嘗試做你說的,但我不明白爲什麼它不返回最後一頁...我有: ['/vente-immobilier/annonces-vente-terrain-u26p2.html',' /vente-immobilier/annonces-vente-terrain-u26p3.html','/vente-immobilier/annonces-vente-terrain-u26p4.html','/vente-immobilier/annonces-vente-terrain-u26p5.html'] 沒有第6頁...:/ –

+0

你能在我的例子中得到相同的結果嗎?如果你在我的例子中得到了相同的結果,但是在真正的scrapy工作中無法得到你想要的結果,那麼xml格式可能是不同的。 – zhongjiajie

+0

我嘗試在我的scrapy但它沒有工作... 該網址是http://www.topannonces.fr/vente-immobilier/annonces-vente-terrain-u26.html 我不明白爲什麼它真的失敗了... –