Re: [问题] Scrapy 蜘蛛程式无法爬超过3个网页

楼主: ug945 (ug945)   2014-12-13 02:50:53
※ 引述《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要限定范围或数量
作者: allen511081 (蓝)   2014-12-16 11:21:00
小弟不才,请问这位大大,小弟该如何实做出来?
楼主: ug945 (ug945)   2014-12-16 19:13:00
Xpath 可以用循环限定只捞哪几个TAG(第几个td)
作者: allen511081 (蓝)   2014-12-17 18:12:00
小弟已解决第二个问题了,还请大大协助解决第一个
楼主: ug945 (ug945)   2014-12-18 02:00:00
override start_request() 然后return 一个[Request(url)]或是直接做一份url list 贴在 start_urls中
作者: allen511081 (蓝)   2014-12-18 16:52:00
感谢大大,小弟的问题今天已全部解决了

Links booklink

Contact Us: admin [ a t ] ucptt.com