scrapy爬取某京的简单爬虫,无仿封操作,只是简单爬取信息

京东商品爬虫实战
本文介绍了一种使用Scrapy框架爬取京东商品信息的方法,包括商品分类、列表、详情及评论数据的抓取流程。通过解析网页结构,实现了商品标题、价格、ID和评论数量的自动化获取。
import scrapy
import re
from JingDong.items import JingDongItem
from scrapy import Request
#---------------------------------------------------------------------------
class JdSpider(scrapy.Spider):
    name = "test"
    allowed_domains = ["jd.com"]
    start_urls = [
        "http://wap.jd.com/category/all.html"
    ]

    def parse(self, response):
        '获取全部分类商品'
        req = []
        for sel in response.xpath('/html/body/div[5]/div[2]/a'):
            for i in sel.xpath('@href').extract():
                if 'category' in i:
                    url = "http://wap.jd.com" + i
                    r = Request(url, callback=self.parse_category)
                    req.append(r)
        return req

    def parse_category(self,response):
        '获取分类页'
        req = []
        for sel in response.xpath('/html/body/div[5]/div/a'):
            for i in sel.xpath('@href').extract():
                url = "http://wap.jd.com" + i
                r = Request(url, callback=self.parse_list)
                req.append(r)
        return req

    def parse_list(self,response):
        '分别获得商品的地址和下一页地址'
        req = []

        '下一页地址'
        next_list = response.xpath('/html/body/div[21]/a[1]/@href').extract()
        if next_list:
            url = "http://wap.jd.com" + next_list[0]
            r = Request(url, callback=self.parse_list)
            req.append(r)

        '商品地址'
        for sel in response.xpath('/html/body/div[contains(@class, "pmc")]/div[1]/a'):
            for i in sel.xpath('@href').extract():
                url = "http://wap.jd.com" + i
                r = Request(url, callback=self.parse_product)
                req.append(r)
        return req

    def parse_product(self,response):
        '商品页获取title,price,product_id'
        title = response.xpath('//title/text()').extract()[0][:-7]
        price = response.xpath('/html/body/div[4]/div[4]/font/text()').extract()[0][1:]
        product_id = response.url.split('/')[-1][:-5]

        item = TutorialItem()
        item['title'] = title
        item['price'] = price
        item['product_id'] = product_id
        r.meta['item'] = item

        r = Request(re.sub('product','comments',response.url),callback=self.parse_comments) # 评论页地址
        return r

    def parse_comments(self,response):
        '获取商品comment数'
        comment_5 = response.xpath('/html/body/div[4]/div[2]/a[1]/font[2]/text()').extract()
        comment_3 = response.xpath('/html/body/div[4]/div[2]/a[2]/font/text()').extract()
        comment_1 = response.xpath('/html/body/div[4]/div[2]/a[3]/font/text()').extract()
        comment = comment_5 + comment_3 + comment_1
        totle_comment = sum([int(i.strip()) for i in comment])
        item = response.meta['item']
        item['comment'] = totle_comment
        return item
############################################################################

### 回答1: Scrapy是一个Python框架,用于基于异步的网络爬虫。它可以使用户更轻松地从互联网上爬取有关特定主题的信息。例如,你可以使用Scrapy爬取某网站的趋势、新闻、保健、交通等方面的信息。 为了爬取这个网站上的景区评论,需要使用Scrapy的基本结构。首先,需要定义一个名为Spider的类。这个类包含要抓取的页面的URL,以及URL中找到的每个评论的有关信息。 接下来,需要定义一个名为Item的类。这个类包含评论的信息,如评论文本、时间和评分等。Scrapy使用这个类来生成XML和JSON等格式的输出。 Scrapy还将数据存储在名为Items的容器中。在Spider类中,Scrapy使用容器来提取评论,将每个评论的有关信息存储到Item实例中。 一旦你已经设置了Spider和Item类,在Scrapy中运行爬虫时,Scrapy将使用这两个类来抓取、解析和存储景区评论网站中的信息。 ### 回答2: Scrapy是一个功能强大的Python网络爬虫框架,它可以让用户针对各种网站的数据进行自动抓取和处理。对于爬取景区景点评论信息而言,Scrapy是一个致力于网页数据挖掘的有力工具。 对于一个Scrapy爬虫,基本上都需要完成以下步骤: 1. 定义爬虫种子。即确定要爬取的网站、需要抓取的数据,以及触发爬虫的条件等。 2. 编写网络爬虫。可以根据网站的结构和数据流动情况编写我们需要的数据爬取代码,包括用户评论、评论评分等信息的抓取。 3. 存储数据。将爬取到的数据进行处理,并存储到本地文件或数据库中,以便后续进一步分析。 Scrapy特别适用于大规模的数据爬取和处理,效率高,且可以处理多个线程。因此,如果要爬取某个大型景区的评论数据,相信Scrapy一定能够胜任这项任务。通过获取这些评论数据,我们可以对景区的服务质量进行评估和改善,也可以为其他游客提供更加详细和真实的景区评价。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值