HTMLを解析する必要があるため、pythonを使用してクローラーを作成しているため、lxmlをインポートしますが、奇妙なエラーが発生します。
<type 'dict'>
{'xpath': '//ul[@id="i-detail"]/li[1]', 'name': u'\u6807\u9898'}
<type 'dict'>
{'xpath': '//ul[@id="i-detail"]/li[1]', 'name': u'\u6807\u9898'}
<type 'dict'>
{'xpath': '//ul[@id="i-detail"]/li[1]', 'name': u'\u6807\u9898'}
Exception in thread Thread-3:
Traceback (most recent call last):
File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/threading.py", line 522, in __bootstrap_inner
self.run()
File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/threading.py", line 477, in run
self.__target(*self.__args, **self.__kwargs)
File "fetcher.py", line 78, in run
self.extractContent(html)
File "fetcher.py", line 151, in extractContent
m = tree.xpath(c['xpath'])
AttributeError: 'NoneType' object has no attribute 'xpath'
<type 'dict'>
{'xpath': '//ul[@id="i-detail"]/li[1]', 'name': u'\u6807\u9898'}
これが私のコードの一部です:
for c in self.contents:
print type(c)
print c
m = tree.xpath(c['xpath'])
次の 2 つの質問について教えてください。
タイプはなぜですか
dict
、エラーは NoneType と表示されますか?「ツリー」内の何かを一致させようとしていますが、うまくいきません (Web サイトは GBK でエンコードされています。エンコードの種類がこの種の問題を引き起こす可能性はありますか?)。