私はPythonには初めてですが、仕事のためにScrapyを使用するために頭を抱えようとしています。TypeError: 'HtmlResponse'オブジェクトは反復可能ではありません
私は現在、このチュートリアルを次のようだ: http://scrapy2.readthedocs.io/en/latest/intro/tutorial.html
私は(チュートリアルから)この部分で問題を抱えてきました:
def parse(self, response):
for sel in response.xpath('//ul/li'):
title = sel.xpath('a/text()').extract()
link = sel.xpath('a/@href').extract()
desc = sel.xpath('text()').extract()
print title, link, desc
私がいる問題がfor sel in response.xpath('//ul/li'):
一部であります。私はxpathに一致するものにクロールされるものを本質的に絞り込むという行を理解しています//ul/li
。
私の実装では、ページを1つの特異なセクションに絞り込むことはできません。
def parse(self, response):
for sel in response.xpath('//html'):
title = sel.xpath('//h1/text()').extract()
author = sel.xpath('//head/meta[@name="author"]/@content').extract()
mediumlink = sel.xpath('//head/link[@rel="author"]/@href').extract()
print title, author, mediumlink
XPathには、私が使用クロームプラグインの両方で働く、と私は変更しようとしたscrapy shell
でresponse.xpath('//title').extract()
を使用して:私は以下の私の試みを参照して、全体のHTMLを選択することで、これを回避しようとしましたこれまで行:
for sel in response.xpath('//html'):
とfor sel in response.xpath('html'):
しかし、私はこれを取得するたびに:
2016-10-16 14:33:43 [scrapy] ERROR: Spider error processing <GET https://medium.com/swlh/how-our-app-went-from-20-000-day-to-2-day-in-revenue-d6892a2801bf#.smmwwqxlf> (referer: None)
Traceback (most recent call last):
File "/usr/local/lib/python2.7/site-packages/twisted/internet/defer.py", line 587, in _runCallbacks
current.result = callback(current.result, *args, **kw)
File "/Users/Matthew/Sites/crawl/tutorial/tutorial/spiders/medium_Spider.py", line 11, in parse
for sel in response:
TypeError: 'HtmlResponse' object is not iterable
誰かが私にこの問題を解決する最善の方法についていくつかの指摘をしてもらえますか?私の上で簡単に行く、私のスキルはそれほど熱くない。ありがとう!エラーメッセージとして
「」ノードは1つのみです。iterableではありません –
何を試してみるべきですか? – matt
表示されるコードとエラーメッセージに一貫性がありません。エラーメッセージによると、あなたは 'response.xpath(...)'ではなく 'response'を反復しようとしています。 – Markus