【发布时间】:2014-12-08 10:07:10
【问题描述】:
我在 Python 中使用 scrapy 试图从网站获取值,然后用于迭代。我遇到的问题是,似乎只能通过 yield 发送请求,这使得无法获得返回值。
class Spider(scrapy.Spider):
name = 'spider'
allowed_domains = ['domain.com']
start_urls = ['url1', 'url2', ...]
headers = ['id', 'name', 'description']
pageNumber = 0 #tried to use a global variable but that doesn't really work because of the sub process.
def start_requests(self):
for su in self.start_urls:
yield Request('http://url.com%s' % su,
self.parse_pageNumber)
for i in range(pageNumber):
page = su+str(pageNumber)
yield Request('http://url.com' % page,
self.parse_matches)
def parse_pageNumber(self, response):
finds page number
def.parse_matches(self, response):
does everything else and returns items
知道如何在不做太多额外工作的情况下获取页码吗?
【问题讨论】:
-
也许您想将产生页码请求的 for 循环放在
parse_pageNumber中? -
那我就不知道哪个页码属于哪个页面了。关于无法访问该号码,我仍然会遇到同样的问题..
标签: python web-scraping scrapy yield