scrapy——从爬取京东商品数据来看一个好简单的scrapy爬虫怎么写

我们将采用python+scrapy框架来写这次这个好简单的爬虫。
前提条件:
1、安装了python
2、安装scrapy库
没了就两个

首先,一个爬虫,无非就是把某个网页中我们看到的信息复制下来,再保存下来,要是你有毅力,你可以手动复制粘贴完成爬虫的任务。网页展示的内容呢,都是可以在网页的源代码中找到的,所以,我们只要把网页源代码下载下来,然后再在源代码中定位到我们想要的内容,然后“复制粘贴”就ok啦。
所以我们的步骤应该是
1、先利用某某东西,访问网页,再把网页的源代码给全部下载下来(这个东西最好只要我给它一个网址,他就能把对应网址的源代码下载下来,urllib可以帮到我们)
2、然后,我就需要定位我要的信息在源代码的哪一块,你当然可以像处理字符串一样去处理下载下来的网页源代码,但那样太折磨人了,有好多工具可以帮助我们定位(css,xpath等等)
3、然后我已经拿到了我要的数据了,下面我可能想把这些数据保存到本地的一个txt文件里面去,又或者csv,json,或者直接保存到数据库里,那这里就是文件或者数据库操作了
三个步骤下来,就完成这次的爬取任务了
scrapy 就可以帮助我们完成上面三个步骤,而且非常轻松
上面是“老三步”了,下面来看利用scrapy的“新三步”
1、创建scrapy项目(是的,你要用scrapy,请先创建一个scrapy项目)
打开cmd,进入到你准备存放项目的路径下,慢慢的小心的敲入 (确保已经成功安装scrapy,同时将其添加到了环境变量中)

scrapy startproject XXXXXXXX   #XXXXXXXX是你给项目起的名字      

这个时候该路径下就有一个叫做XXXXXXXX的文件夹,里面就是初始化好的scrapy项目了
2、创建一个“蜘蛛”,请进入你刚才创建好的scrapy项目文件夹内,慢慢的小心的敲入

scrapy genspider jd_spider www.jd.com  #jd_spider 是这个蜘蛛的名字  www.jd.com表示这只蜘蛛爬取的网站被限制在www.jd.com

3、到这里准备工作就做好啦,下面就来看看我要让这个爬虫怎么去京东上取信息呢?
用你的pycharm打开刚才创建好的scrapy项目,然后看到自动创建好的jd_spider.py文件,添加以下内容

# -*- coding: utf-8 -*-
import scrapy
from ..items import JdScrapyItem

class JdSpiderSpider(scrapy.Spider):
    name = 'jd_spider'
    allowed_domains = ['jd.com']
    start_urls = ['https://search.jd.com/Search?keyword=oppo&enc=utf-8&qrst=1&rt=1&stop=1&vt=2&bs=1&wq=oppo&ev=exbrand_OPPO%5E&page=1&s=56&click=0']
    def parse(self, response):
    	#通过查看网页源代码,这里可以定位到这一页的所有商品信息
        each = response.xpath('//*[@id="J_goodsList"]/ul/li')
        
        #其中包含了每个商品的信息,我们循环把每个商品都找出来
        for i in each:
        	#这里获取到了该商品的价格
            money = i.xpath('./div/div[3]/strong/i/text()').extract()
			
			#这里获取商品的详细介绍
            introduce = i.xpath('./div/div[4]/a/em/text()').extract()
            
            #这个处理主要是因为,有一些商品的介绍有多行,我们吧他们都做一个合并
            str1 = ''
            if len(money) == 0 or len(introduce)==0:
                continue
            for k in introduce:
                str1 += k
                
            print(money)
            print(str1)

在执行爬虫的时候,访问网页,下载网页源代码都是scrapy自动帮我们做了,是不是很简单,我们看到函数

def parse(self, response):

参数中的response就是返回的网页源代码,我们可以直接用xpath或者其他的工具进行定位了(利用xpath)

如此,一个好简单的爬虫就好简单的写完了,有了scrapy框架,我们不用再费精力与网页的访问和源代码的下载,专心于定位信息就好。
为了能自己写一个爬取其他网站的爬虫,你还需要掌握基本的xpath语法和网页源码的查看方法(利用谷歌浏览器的F12)
运行scrapy爬虫,请慢慢的小心的在cmd敲入

scrapy crawl jd_spider   #表示运行jd_spider爬虫

为了在pycharm中直接运行爬虫,可添加如下内容到一个xxx.py文件中去,然后运行xxx.py

from scrapy import cmdline
cmdline.execute("scrapy crawl jd_spider".split())

点击下载,这里是项目打包

发布了46 篇原创文章 · 获赞 13 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/weixin_42718004/article/details/105220476