4.python爬虫之新建 scrapy 爬虫项目(抓取和保存)

1.win10 下 win + r 打开cmd 切换新项目的目录
2.新建scrapy项目的命令:

scrapy  startproject  + projectname(项目名)
cd projectname   切换到项目
tree    查看 项目结构

可以利用pycharm 打开项目文件夹编辑项目
3.items.py
声明爬取的字段

4.新建scrapy 爬虫

scrapy genspider + 爬虫名 + 爬取的网站

用命令 scrapy genspider doubanmovie "movie.douban.com" 创建爬虫。

5.运行爬虫

scrapy crawl + 爬虫名

5.1 创建运行脚本
(一)、在 scrapy.cfg 同级目录下创建 pycharm 调试脚本 run.py,避免每次运行爬虫输入密码,内容如下:

# -*- coding: utf-8 -*-
from scrapy import cmdline
cmdline.execute("scrapy crawl doubanmovie".split())

6.修改robottxt协议
修改 settings 中的 ROBOTSTXT_OBEY = True 参数为 False,因为默认为 True,就是要遵守 robots.txt 的规则, robots.txt 是遵循 Robot协议 的一个文件,它保存在网站的服务器中,它的作用是,告诉搜索引擎爬虫,本网站哪些目录下的网页不希望你进行爬取收录。在 Scrapy 启动后,会在第一时间访问网站的 robots.txt 文件,然后决定该网站的爬取范围。查看 robots.txt 可以直接网址后接 robots.txt 即可。

  1. 保存已经爬取到的数据(三个方式:命令,pipeline,下载中间件)
    保存为csv格式和json格式
    注意:
    导出抓取数据
    最简单的保存抓取数据的方式是使用json格式的文件保存在本地,像下面这样运行:
scrapey crawl huxiu -o items.json

一般构建爬虫系统,建议自己编写Item Pipeline,就可以在open(path)选择自己的保存路径
参考:# scrapy爬虫事件以及数据保存为txt,json,mysql

scrapy crawl doubanmovie -o doubanmovies.csv
scrapy crawl doubanmovie -o doubanmovies.json
json和csv的保存路径

7.1保存为json格式时出现乱码的解决方式:
scrapy抓取豆瓣书籍保存json文件乱码问题
中文默认是Unicode,如:

\u5317\u4eac\u5927\u5b66
在setting文件settings.py中设置:

FEED_EXPORT_ENCODING = 'utf-8'

就可以解决了
第二种解决办法
或在cmd中传入 -s FEED_EXPORT_ENCODING='utf-8'

scrapy crawl -o item.json -s FEED_EXPORT_ENCODING='utf-8' douban

参考:https://www.cnblogs.com/tinghai8/p/9700300.html

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值