0

HtmlXPathSelectorを介してページから何かを抽出するためにURLをフェッチするものをスパイダー内に含めるにはどうすればよいですか?しかし、URLはコード内の文字列として提供したいものであり、たどるリンクではありません。

私はこのようなことを試みました:

req = urllib2.Request('http://www.example.com/' + some_string + '/')
req.add_header('User-Agent', 'Mozilla/5.0')
response = urllib2.urlopen(req)
hxs = HtmlXPathSelector(response)

ただし、現時点では、次の例外がスローされます。

[Failure instance: Traceback: <type 'exceptions.AttributeError'>: addinfourl instance has no attribute 'encoding'
4

2 に答える 2

1

body = urllib2.urlopen(req).read()を使用してscrapy.http.HtmlResponseオブジェクトを作成する必要がありますが、コールバックでリクエストを返す代わりにurllib2を使用する必要があるのはなぜですか?

于 2011-01-12T03:04:21.947 に答える
-1

Scrapyは、ユニットテストの実行方法を明示的に示していません。スパイダーごとにユニットテストを実行する場合は、Scrapyを使用してデータをクロールすることはお勧めしません。

于 2015-06-16T06:41:29.030 に答える