本文章是在环境搭建好的情况下,记录学习Scrapy框架笔记
准备环节
- CMD跳转到Python环境目录
- 创建文件夹 mkdir [文件名]
Scrapy项目创建流程
- 创建Scrapy项目 scrapy startproject [项目名]
- 进入项目文件夹 cd [项目名]
- 创建爬虫文件 scrapy genspider [文件名] [域名]
提示:爬虫文件名不能和项目名一致
项目文件说明:
代码实现—编写爬虫
在创建好的爬虫文件(comment_spider.py)里编写爬取内容代码
# -*- coding: utf-8 -*-
import scrapy
from ..items import CommentScrapyItem
import bs4
class CommentSpiderSpider(scrapy.Spider):
name = 'comment_spider' #爬虫名comment_spider
allowed_domains = ['自定义'] #域名
start_urls = [] #爬虫起始网址
for x in range(3): #构造url
url = "自定义"+str(x)
start_urls.append(url) #将url添加进start_urls
def parse(self, response):
#parse为任默处理response方法
soup = bs4.BeautifulSoup(response.text,'html.parser') #解析
datas = soup.find_all('div',class_='comment-content') #提取内容
for data in datas:
item = CommentScrapyItem() #实例化CommentScrapyItem
item['comment'] = data.text.strip() #提起评论内容
print(item['comment']) #打印评论
yield item #把内容传递给item
代码实现—定义数据
在items.py里定义数据,爬取的内容为评论
# -*- coding: utf-8 -*-
import scrapy
class CommentScrapyItem(scrapy.Item):
#定义CommentScrapyItem类,继承自scrapy.Item
comment = scrapy.Field()
#定义评论的数据属性
代码实现—设置
修改settings.py文件,比如USER-AGENT,ROBOTS等等
# Obey robots.txt rules
ROBOTSTXT_OBEY = False
代码实现—运行
方法一
- cd 项目文件夹的路径
- 输入命令scrapy crawl comment_spider(comment_spider是我的爬虫名)
方法二
- 在最外层的大文件夹里新建一个main.py文件(与scrapy.cfg同级)
- 在main.py文件里编写代码
# encoding: utf-8
from scrapy import cmdline
#导入cmdline模块,实现控制命令行
cmdline.execute(['scrapy','crawl','comment_spider'])
#用execute()方法,输入运行scrapy的命令