欢迎访问宙启技术站
智能推送

Scrapy+XPath:爬取天猫商品信息

发布时间:2024-01-04 03:05:52

在爬虫中,XPath是一种在XML文档中定位和选择节点的语言。Scrapy是一个用Python编写的网络爬虫框架,可以用于快速、高效地抓取网页内容。

下面是一个使用Scrapy和XPath来爬取天猫商品信息的示例代码:

import scrapy

class TmallSpider(scrapy.Spider):
    name = 'tmall_spider'
    start_urls = ['https://list.tmall.com/search_product.htm?q=手机']  # 要爬取的起始url

    def parse(self, response):
        # 使用XPath定位商品信息节点
        items = response.xpath('//div[contains(@class, "product-item")]')

        for item in items:
            # 使用XPath获取商品名称
            name = item.xpath('.//p[@class="productTitle"]/a/@title').extract_first()

            # 使用XPath获取商品价格
            price = item.xpath('.//p[@class="productPrice"]/em/@title').extract_first()

            # 使用XPath获取商品链接
            link = item.xpath('.//p[@class="productTitle"]/a/@href').extract_first()

            # 打印商品信息
            print('商品名称:', name)
            print('商品价格:', price)
            print('商品链接:', link)
            print('------------')

        # 获取下一页的链接
        next_page_link = response.xpath('//a[@class="ui-page-next"]/@href').extract_first()
        if next_page_link:
            # 构造下一页的URL并发送请求
            next_page_url = response.urljoin(next_page_link)
            yield scrapy.Request(next_page_url, callback=self.parse)

在上面的代码中,首先定义了一个继承自scrapy.Spider的类TmallSpider。然后在start_urls中指定了要爬取的起始url。

parse方法中,使用XPath定位商品信息节点,并使用XPath获取商品名称、价格和链接。然后打印商品信息。

接着使用XPath获取下一页的链接,并构造下一页的URL发送请求。

最后,通过运行scrapy crawl tmall_spider命令,就可以开始爬取天猫商品信息了。

总结:

- Scrapy是一个强大的网络爬虫框架,可以方便地实现网页内容的爬取。

- XPath是一种在XML文档中定位和选择节点的语言,可以用于在爬虫中定位和提取所需的信息。

- 在爬取天猫商品信息时,可以使用Scrapy和XPath来定位和提取商品名称、价格和链接等信息。