私はscrappyが呼び出すメインの解析関数からgetNext()関数を呼び出そうとしますが、呼び出されることはありません。Python Scrapy関数呼び出し
class BlogSpider(scrapy.Spider):
# User agent.
name = 'Mozilla/5.0 (Linux; Android 4.0.4; Galaxy Nexus Build/IMM76B) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.133 Mobile Safari/535.19'
start_urls = ['http://www.tricksforums.org/best-free-movie-streaming-sites-to/']
def getNext(self):
print("Getting next ... ")
# Check if next link in DB is valid and crawl.
try:
nextUrl = myDb.getNextUrl()
urllib.urlopen(nextUrl).getcode()
yield scrapy.Request(nextUrl['link'])
except IOError as e:
print("Server can't be reached", e.code)
yield self.getNext()
def parse(self, response):
print("Parsing link: ", response.url)
# Get all urls for futher crawling.
all_links = hxs.xpath('*//a/@href').extract()
for link in all_links:
if validators.url(link) and not myDb.existUrl(link) and not myDb.visited(link):
myDb.addUrl(link)
print("Getting next?")
yield self.getNext()
私はそれ以前に収穫をしていましたが、何も問題はありませんでしたか?そして、この収穫は何であるはずですか? :)
コンソールには何が印刷されていますか? – alecxe
'( 'リンクの解析:'、 'http://www.tricksforums.org/best-free-movie-streaming-sites-to/') 次の取得方法は?'それだけです。 – Alessandro
「次へ」を参照してください。つまり、getNext()が実行されたことを意味します。ありがとう。 – alecxe