2011-01-09 13 views
0

HtmlXPathSelector経由でページから何かを抽出するためにURLを取得する何かの中に私のスパイダーを入れるにはどうすればいいですか?しかし、URLは、コード内の文字列として提供するものであり、後続するリンクではありません。python-scrapy:スパイダーの内部でURLを取得するにはどうすればいいですか?

私はこのような何か試してみました:=

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

答えて

1

あなたは、本体とscrapy.http.HtmlResponseオブジェクトを作成する必要があります。

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

をしかし、現時点ではそれがで例外がスローされますurllib2.urlopen(req).read() - しかし、なぜあなたはコールバックでリクエストを返すのではなく、urllib2を使う必要がありますか?

+0

私はスクラップしているページのどこにもリンクされていないURLに「コールバックでリクエストする」方法を知らない。私はちょうど私が文字列で提供するURLを照会したいと思っています。 – miernik

+0

ありがとう、しかし、今私はHtmlXPathSelectorで動作させることができなかったので、BeautifulSoupでURLを解析してしまいました。 – miernik

0

治療はunittestを行う方法を明示的に示していませんが、各スパイダーのunittestを実行する場合は、データをクロールするためにscrapyを使用することはお勧めしません。

関連する問題