タイトルでお気づきかもしれませんが、scrapy と xpath を使用してデータを抽出しています。ファイルからスパイダーへのxpathを試して提供しました(スパイダーを汎用にするため-頻繁に編集しないため)必要に応じて、必要な形式でデータを抽出できます。
さらに、提供された xpath が有効かどうか (スパイダーで指定された Web ページに関連する) xpath 式をチェックしたいと思います (html スタイルが変更された場合、xpath は無効になります)。これに関して、スパイダーが起動する前に xpath 式を確認したいと思います。
xpath の正確性をテストするにはどうすればよいですか? または、真実のテストを行う方法はありますか? 助けてください。
class ExampleSpider(scrapy.Spider):
name = "example"
allowed_domains = ["example.com"]
start_urls = ["file:///<filepath>.html"]
def __init__(self):
self.mt = ""
def parse(self, response):
respDta = dict()
it_lst = []
dtData = response.selector.xpath(gx.spcPth[0])
for ra in dtData:
comoodityObj = ra.xpath(gx.spcPth[1])
list = comoodityObj.extract()
cmdNme = list[0].replace(u'\xa0', u' ')
cmdNme = cmdNme.replace("Header text: ", '')
self.populate_item(response, respDta, cmdNme, it_lst, list[0])
respDta["mt"] = self.mt
jsonString = json.dumps(respDta, default=lambda o: o.__dict__)
return jsonString
gx.spcPth
gx.spcPth は、xpath を提供する他の関数からのものです。そして、コードの残りの部分で多くの場合に使用されています。実装されている場所に関係なく、コード全体でスパイダーが開始する前に xpath 式を確認する必要があります