私はScrapy 1.2を使用してオンラインデータベース(http://bddatabase.net/jp/weapon/)をクロールしています。ここで遅延読み込みフォームを処理する方法は?
は私のコードの一目です:
class BdItemSpider(scrapy.Spider):
name = "bdspider"
start_urls = [
"http://bddatabase.net/jp/weapon/"
]
def parse(self, response):
item = BdItem()
items = response.xpath("//table[@id='WeaponTable']/tbody//tr/td/text()")
print(items.extract())
そして、ここでは、ログです:
2016-11-22 18:23:14 [scrapy] INFO: Spider opened
2016-11-22 18:23:14 [scrapy] INFO: Crawled 0 pages (at 0 pages/min), scraped 0 items (at 0 items/min)
2016-11-22 18:23:14 [scrapy] DEBUG: Telnet console listening on 127.0.0.1:6023
2016-11-22 18:23:16 [scrapy] DEBUG: Crawled (200) <GET http://bddatabase.net/jp/weapon/> (referer: None)
['Loading data from server']
2016-11-22 18:23:16 [scrapy] DEBUG: Scraped from <200 http://bddatabase.net/jp/weapon/>
{}
2016-11-22 18:23:16 [scrapy] INFO: Closing spider (finished)
これは、サーバーメッセージからのデータのロードを返しました。 私はそれをリフレッシュした後、1〜1.5秒の間にページをロードします。だから私は静的なものではなく動的なフォームを提供するように見えるので、どのようにしてこのフォームのアイテムを正しく得ることができるのだろうかと思います。
"javascript rendering"と呼ばれるものを検索します。それでもチェックする方法がわからない場合は、[selenium](http://docs.seleniumhq.org/)のようなものを使用してください。 – eLRuLL