Scrapy简易使用教程
程序员文章站
2022-05-07 17:32:56
...
一、创建项目
scrapy startproject 项目名
二、创建爬虫实例
scrapy genspider 实例名 目标网址
三、启动爬虫
1. 单个文件启动:
scrapy runspider 实例名.py
2. 项目根目录下运行
当前项目下可以运行的爬虫:scrapy list
scrapy crawl 爬虫名
四、取消scrapy的robot设置
ROBOTSTXT_OBEY = True
将True修改成False
五、确定需要获取的内容
进入items.py 定义获取的内容
class DoubanMoiveItem(scrapy.Item):
# define the fields for your item here like:
# name = scrapy.Field()
movie_name = scrapy.Field()
nums = scrapy.Field()
movie_url = scrapy.Field()
六、修改 setting.py 添加User-Agent防止403
DEFAULT_REQUEST_HEADERS = {
'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
'Accept-Language': 'en',
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.102 Safari/537.36',
}
七、存入数据
-
from ..items import DoubanMoiveItem
-
在需要存入数据的地方实例化
items = DoubanMoiveItem()
-
存入数据
items['movie_name'] = movie_name items['nums'] = nums items['movie_url'] = response.url
Ps: items字典中的key值movie_name、nums、movie_url需要与之前定义的一一对应
八、保存数据到文件
-
修改pipelines.py文件,设置保存方式
示例:
class DoubanMoivePipeline(object): # 爬虫开始调用 def open_spider(self, spider): self.file = open("items.json", 'w+', encoding="utf-8") def process_item(self, item, spider): self.file.write(str(item) + "\n") return item # 爬虫结束调用 def close_spider(self, spider): self.file.close()
-
修改setting.py文件,将对应注释取消(68-70行)
ITEM_PIPELINES = { 'douban_moive.pipelines.DoubanMoivePipeline': 300, }
九、保存数据到数据库
修改pipelines.py 为保存Mongodb
import pymongo
class DoubanMoivePipeline(object):
# 爬虫开始调用
def __init__(self):
self.client = pymongo.MongoClient(host="127.0.0.1", port=27017)
self.db = self.client["test"]
self.col = self.db['douban_movie']
def process_item(self, item, spider):
data = dict(item)
if item:
self.col.insert_one(data)
return item
上一篇: 总结Centos7系统加固知识点
下一篇: python爬虫框架scrapy安装
推荐阅读
-
Oracle教程:使用非滚动游标
-
PHP 自定义错误处理函数的使用详解_PHP教程
-
前端css框架SASS使用教程_html/css_WEB-ITnose
-
PHP管理内存函数 memory_get_usage()使用介绍_PHP教程
-
PHP中trim()函数简单使用指南,trim使用指南_PHP教程
-
PHP V5.2新增功能之第1部分:使用新的内存管理器_PHP教程
-
DevExpress控件安装破解和汉化使用教程
-
模板--为什么和如何在PHP中使用它们_PHP教程
-
php面向对象全攻略 (三)特殊的引用“$this”的使用_PHP教程
-
使用PHP和HTML5 FormData实现无刷新文件上传教程_PHP