Scrapyを使用して、特定の記事を含むWebページをクロールしています。XpathまたはCssセレクタを使用して空のDivを返すScrapyを使用する
私はdiv内の情報をクラス "return"で取得しようとしています。私がScrapy XpathまたはCssセレクタを使用すると、divが返す大きな問題は常に空です。
私は抽出しようとしている事業部:
<div class="return">
<p><strong>Conditionnement : </strong></p>
<p class="one-product-detail">2 colis :<br>
L178xl106xH80 72kg<br>L178xl112xH80 60kg<br>
<span itemprop="weight" alt="3fin" class="hidden" hidden="">132kg</span></p>
</div>
私のスパイダーコード:
import scrapy
from alinea.items import AlineaItem
class AlineaSpider(scrapy.Spider):
name = "alinea"
start_urls = [
"http://www.alinea.fr/",
]
def parse(self, response):
# ref = input("Enter Item Reference ?\n")
#50
# link = "http://www.alinea.fr/alinea_fredhopper/catalogSearch_result/products/search/" + str(ref)
link = "http://www.alinea.fr/alinea_fredhopper/catalogSearch_result/products/search/" + str(50)
print(link)
return scrapy.Request(link,
callback=self.parse_page2)
def parse_page2(self, response):
self.logger.info("Visited %s", response.url)
for sel in response.xpath('//li[contains(@itemprop,"title")]/text()'):
print("**************")
print("Description")
print(sel.extract())
print("**************")
# print("------------------------------------------------------------------")
#
# for sel in response.xpath('//*[@class="delivery"]'):
#
# print("**************")
# print("Details")
# print(sel.extract())
# print("**************")
print("------------------------------------------------------------------")
for sel in response.css('[class="return"]'):
print("**************")
print("Details")
print(sel.extract())
print("**************")
マイターミナルログイン:
2016-07-28 12:57:21 [alinea] INFO: Visited http://www.alinea.fr/orca-canape-angle-gauche-droit-convertible-gris.html
**************
Description
Orca - Canapé CONVERTIBLE d'angle gauche ou droit gris
**************
------------------------------------------------------------------
**************
Details
<div class="return">
</div>
**************
「div」はHTMLソースでは空です。製品のオプションを選択するまでは、Chromeブラウザでも空です。私はhttp://www.alinea.fr/orca-canape-angle-gauche-droit-convertible-gris.htmlでテストしました。後のデータは、おそらくJavaScript経由で読み込まれます。 Scrapy自体はHTMLをダウンロードするだけで、JavaScriptをインタープリットしません。 XHR呼び出しを再現するか、SeleniumやSplashのようなJavaScriptレンダリングツールを使用する必要があります。 –