刮刮Snapdeal来提取手机功能

时间:2015-11-10 07:22:30

标签: python web-scraping scrapy

我想从snapdeal中删除移动产品功能。

//*[@id="productSpecs"]/div/div[2]/div[2]/div/table[1]/tbody/tr/td/table/tbody/tr/td[2]
//*[@id="productSpecs"]/div/div[2]/div[2]/div/table[1]/tbody/tr/td/table/tbody/tr/td[1]

这些是xpath。我可以通过谷歌浏览器中的刮刀扩展来查看结果。但是无法通过scrapy获取结果。

from scrapy.spider import BaseSpider
# from scrapy.selector import HtmlXPathSelector
from scrapy.selector import Selector
from demo.items import CraigslistSampleItem


class MySpider(BaseSpider):
    name = "craigs"
    allowed_domains = ["www.snapdeal.com"]
    start_urls = ["http://www.snapdeal.com/product/samsung-galaxy-j2-8gb/655619199985"]

    def parse(self, response):
        # hxs = HtmlXPathSelector(response)
        sel = Selector(response)
        titles = sel.xpath("//*[@id='productSpecs']/div/div[2]/div[2]/div/table[1]/tbody/tr/td/table/tbody/tr/td[2]")
        print titles
        items = []
        for titles in titles:
            item = CraigslistSampleItem()
            # item["Brand"] = titles.extract()
            items.append(item)
        print items

titles打印为空,这是示例代码。

1 个答案:

答案 0 :(得分:0)

将您的xpath编辑为:

titles = sel.xpath("//*[@id='productSpecs']/div/div[2]/div[2]/div/table[1]/tr/td/table/tr/td[2]")

这是因为chrome在源代码中添加了额外的tbody标记。