1.scrapy常用的几个语句
scrapy startproject 项目名
scrapy genspider 爬虫名 域名
scrapy crawl 爬虫名
2.创建scrapy项目步骤
2.1先配置scrapy框架,操作语句:pip install scrapy
2.2先打开windows+r,输入cmd,在scrapyproject目录下创建项目
创建项目语句:scrapy startproject myfirstProject
2.3在pycharm中打开scrapy项目
2.3编写一个简单的爬虫爬取数据(比如爬取起点中文网小说畅销排行榜单_起点小说畅销排行-起点中文网)
2.3.1先创建一个.py文件
cd myfirstProject
scrapy genspider first_spider www.first_spider.com
2.3.2 对spdier项目的配置文件进行修改,打开文件settings.py
BOT_NAME:项目名
USER_AGENT:索要爬取网站的USER_AGENT
ROBOTSTXT_OBEY:是否遵循机器人协议,默认是true,需要改为false,否则很多东西爬不了
修改前:
修改后:
2.3.3编写代码:
import scrapy
class FirstSpiderSpider(scrapy.Spider):
name = 'first_spider'
start_urls = ["https://www.qidian.com/rank/hotsales?style=1"]
def parse(self, response):
print('爬虫开始工作'.center(88, '-'))
list_selector = response.xpath("//div[@class='book-mid-info']")
list = []
for one_selector in list_selector:
name = one_selector.xpath("h4/a/text()").extract()[0]
author = one_selector.xpath("p[1]/a[1]/text()").extract()[0]
type = one_selector.xpath("p[1]/a[2]/text()").extract()[0]
fr = one_selector.xpath("p[1]/span/text()").extract()[0]
hot_dict = {
"姓名": name,
"作者": author,
"类型": type,
"获取方式": fr
}
print(hot_dict)
list.append(hot_dict)
return list
运行:
指令:scrapy crawl first_spider
注意:下面两个方框里的名称一定一样,否则报错
运行结果如图:
2.3.4 如果不想在终端显示数据,可以放在4种文档中保存数据
保存数据方法可以分为4种:-o输出指定格式文件,命令如下
json格式,默认为unicode编码:scrapy crawl itcast -o teachers.json
json lines格式,默认为unicode编码:scrapy crawl itcast -o teachers.jsonl
csv格式,逗号表达式可以用excel打开:scrapy crawl itcast -o teachers.csv
xml格式:scrapy crawl itcast -o teachers.xml
在pycharm查看结果
3.总结:
创建scrapy项目:scrapy startproject + 项目名
创建.py文件: scrapy genspider 文件名 www.文件名.com
运行代码 : scrapy crawl + name
保存数据 : scrapy crawl + name+ -o 文件名.csv(-o前有空格)