看板 Python 關於我們 聯絡資訊
※ 引述《allen511081 (藍)》之銘言: : 小弟是python 新手,最近想要抓一個鳥會的DataBase,但這個DataBase的頁面沒有其他 : 連結,於是自己以程式產出連結,並丟給爬蟲程式去爬, : 程式可以正常執行,無奈程式只要爬超過三個網頁, : 抓下來的資料順序就會出錯,請教各位大大,我該如何解決?? : 下面附上程式碼 : import scrapy : import string : from scrapy.http import Request : from Birdtest.items import BirdItem : class BirdSpider(scrapy.Spider): : name = "bird" : allowed_domains = ["webdata.bird.org.tw"] : start_urls = ["http://webdata.bird.org.tw/contents.php?key=000001"] : def parse(self, response): : for sel in response.xpath('//tr/td[@colspan]'): : item = BirdItem() : item['desc'] = sel.xpath('text()').extract() : yield item : for i in xrange(2,5,1): : url="http://webdata.bird.org.tw/contents.php?key=" + str(i) : yield Request(url,self.parse) 1.在start_request()中產生連結或是直接寫死在start_urls中 2.xpath要限定範圍或數量 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.162.69.5 ※ 文章網址: http://www.ptt.cc/bbs/Python/M.1418410257.A.B54.html
allen511081: 小弟不才,請問這位大大,小弟該如何實做出來? 12/16 11:21
ug945: Xpath 可以用迴圈限定只撈哪幾個TAG(第幾個td) 12/16 19:13
allen511081: 小弟已解決第二個問題了,還請大大協助解決第一個 12/17 18:12
ug945: override start_request() 然後return 一個[Request(url)] 12/18 02:00
ug945: 或是直接做一份url list 貼在 start_urls中 12/18 02:02
allen511081: 感謝大大,小弟的問題今天已全部解決了 12/18 16:52