前言
这里使用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