《Python笔记》Scrapy爬虫(1)本地存储

前言

这里使用Scrapy框架,相关资料需自行百度。

注意,使用Scrapy框架,需要提前下载好第三方库 pip install xxxx

目标: 

1. 本地安装所需要的各种环境,按照自己需要的安装

2. 创建scrapy爬虫项目

3. 爬取正确的数据

    (1) 对爬取的数据进行格式转换

4. 爬取的数据进行本地存储(存入txt文件中)

#2.升级pip到最新版本
    python -m pip install --upgrade pip

#2.安装scrapy框架所需第三方类库
    pip install scrapy

一、新建一个目录,并通过命令在该目录下创建一个scrapy爬虫项目 crawlerDemo

scrapy startproject crawlerDemo

二、找到该项目,导入到Pycharm中,表结构如下:

三、在spiders包下创建一个python文件,并敲入代码

1.我这里在spiders包内新建了一个py文件,myfirst.py,这个py文件名字随便起的,记住接下来代码中的爬虫name就行

2.敲入代码

这串代码,随便爬了一个小说网的某篇小说的其中一章(这篇文章没有记录翻页、下一页)

通过xpath,分析出规则,根据规则对网站数据进行提取(不懂xpath的可以先了解一下)

#coding:utf-8
import scrapy


class myclass(scrapy.Spider):

    # 爬虫name, 运行项目所需的命令: scrapy crawl test
    name ='test'

    # 小说网页,固定写法
    start_urls = ["http://book.zongheng.com/chapter/834310/55013410.html"]

    def parse(self, response):

        # 标题 title_txtbox
        title = response.xpath("//div[@class='title_txtbox']/text()").extract()[0]
        print(title)

        # 内容 content
        content = response.xpath("//div[@class='content']//text()").extract()
        # 数组转字符串: String = "".join(arrary)
        # 字符串清除空格: String.strip()
        # 数组转字符串,并清空内容里的空格
        content2 = "".join(content).strip()
        print(content2)

        # 写入fiction.txt,并存到D盘
        self.file = open('D://fiction.txt', 'a', encoding='utf-8')
        self.file.writelines(title+'\n'+ content2 +'\n')
        self.file.close()

四. 启动scrapy爬虫项目

 爬虫名在前面代码中有标记
    name ='test'

# scrapy crawl 爬虫名
scrapy crawl test

五、常见异常

1.无法使用scrapy命令。

原因:没用配置软连接,先看下/usr/bin路径下是否有scrapy文件,没有就配置软连接

bash: scrapy: command not found

软连接配置:

ln -s /usr/local/python3/bin/scrapy /usr/bin/scrapy

2.未知命令crawl。

原因:缺少scrapy配置文件 scrapy.cfg,创建scrapy项目时会带着这个scrapy.cfg文件,创建的路径去找一下

Unknown command: crawl

Use "scrapy" to see available commands

//------------------------------------------------------------------------------------------------

最后,分享几种常用的第三方插件库

#1.安装scrapy框架(爬虫服务器安装)
    pip install scrapy
#2.安装selenium插件(爬虫服务器安装)
    pip install selenium
#3.安装simplejson插件(爬虫服务器安装)
    pip install simplejson
#4.把文件第一行python改成python2
    vi /usr/bin/yum
#5.跟上面一样修改第一行python改成python2
    vi /usrbexec/urlgrabber-ext-down
#6.安装epel
    yum -y install epel-release
#7. 安装redis插件
    pip install scrapy_redis
#8.安装kafka依赖
    pip install kafka-python
#9.安装redis模块
    pip install redis
#10.安装DBUtils模块
    pip install DBUtils
#11.安装pymysql模块
    pip install pymysql
#12.安装schedule调度器模块
    pip install schedule
#13.安装requests模块
    pip install requests
#14.安装fake_useragent模块
    pip install fake_useragent

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

学弟不想努力了

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值