append()関数を使ってリストを返すか、返すのですが、いくつかのエラーが出ます。Scrapy:append()関数を使ってリストを返す方法
解決方法はありますか?私はいくつかのエラーをコメントしました。
申し訳ありませんが、私はpythonコーディングに新しいです。
class mySpider(CrawlSpider):
name = "testspider"
allowed_domains = ["example.com"]
start_urls = (
'http://www.example.com/test-page.html',
)
rules = (
Rule(LinkExtractor(allow=('')), callback="parse_items", follow=True),
)
def parse_items(self, response):
item = myItem()
#Extract some items
item['status'] = response.status
yield item
inlinks = []
links = LinkExtractor(canonicalize=False, unique=True).extract_links(response)
for link in links:
is_allowed = False
for allowed_domain in self.allowed_domains:
if allowed_domain in link.url:
is_allowed = True
if is_allowed:
inlink = anotherItem()
inlink['url_from'] = response.url
inlink['url_to'] = link.url
inlinks.append(inlink)
yield inlinks #ERROR: Spider must return Request, BaseItem, dict or None, got 'list' in <GET http://www.example.com/test-page.html>
#if using yield inlink of course I get just the first element, in my case I get only the first URL for every unique page
#using return inlinks I get