ページから製品名を取得しようとしています:
https://www.v12outdoor.com/view-by-category/rock-climbing-gear/rock-climbing-shoes/mens.html
有用で特定の結果を返すXPATHが見つかりません。
私の最初の投稿がそのような初心者の質問であることをお詫びします:(
class V12Spider(scrapy.Spider):
name = 'v12'
start_urls = ['https://www.v12outdoor.com/view-by-category/rock-climbing-gear/rock-climbing-shoes/mens.html']
def parse(self, response):
yield {
'price' : response.xpath('//span[@id="product-price-26901"]/text()'),
'name' : response.xpath('//h3[@class="product-name"]/a/text()'),
}
の場合name
、h3
クラスクラスのタグ内のアイテムから名前を生成することを期待していましたproduct-name
が、複数行のデータを生成します= '\ r \ n
(私たちがそれに取り組んでいる間price
、数値だけを引き出す方法はありますか?)
直面している問題は、xpathにget()メソッドを使用してから、stringにstrip()メソッドを使用することで解決できます。私はこのようなことを試みました
name= response.xpath('//h3[@class="product-name"]/a/text()').get()
与える
'\r\n RED CHILLI VOLTAGE '
次に使用する
name.strip()
与える
'RED CHILLI VOLTAGE'
したがって、名前ステートメントを次のように置き換えることができます
name= response.xpath('//h3[@class="product-name"]/a/text()').get().strip()
価格を取得するための同じソリューションは、ステートメントの最後に.get()。stripを追加するだけです
うまくいけば、これが役立つでしょう。https://docs.scrapy.org/en/latest/topics/selectors.htmlから.getall()メソッドについてもお読みください
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加