我一直在尝试Scrapy而且非常喜欢它。但是,我测试它的其中一项似乎不起作用。
我试图抓一个页面(例如apple.com)并使用简单的xpath保存可用的键盘选项列表
//select/option
使用Chrome控制台时,下面的网站会返回一系列我可以轻松迭代的选项,但是,如果我使用scrapy.response.xpath(' // select / option')刮刀,或通过控制台,我什么也得不回来。
我的刮刀代码看起来有点像下面(为简单而编辑)
import scrapy
from scrapy.linkextractors import LinkExtractor
from lxml import html
from apple.items import AppleItem
class ApplekbSpider(scrapy.Spider):
name = 'applekb'
allowed_domains = ['apple.com']
start_urls = ('http://www.apple.com/ae/shop/buy-mac/imac?product=MK482&step=config#', )
def parse(self, response):
for sel in response.xpath('//select/option'):
item = AppleItem()
item['country'] = sel.xpath('//span[@class="as-globalfooter-locale-name"]/text()').extract()
item['kb'] = sel.xpath('text()').extract()
item['code'] = sel.xpath('@value').extract()
yield item
正如您所看到的,我试图获取每个选项的代码和文本,以及网站" Locale Name" (国家)。
作为旁注,我尝试使用CSS选择器无济于事。谁知道我错过了什么?
提前多多感谢, 甲
答案 0 :(得分:0)
//select/option
找不到任何内容的原因是,当您使用scrapy加载时,网站中没有select
标记。那是因为JavaScript没有被执行,下拉列表没有填充值。
尝试从Chrome开发者工具的设置中禁用javascript,您应该会看到scrapy在抓页时看到的相同的空白网站。
答案 1 :(得分:0)