赞
踩
本文内容是通过Pycharm来进行实操
创建项目的虚拟环境,目的是为了不让其他的环境资源干扰到当前的项目
本文将以豆瓣作为手把手学习参考,网址:https://movie.douban.com/top250,1. 进入Terminal终端,安装我们需要的scrapy模块
pip install scrapy
2. 通过pycharm进入Terminal终端,输入我们接下来打算创建的项目,以myspider为例
创建完之后会生成对象的目录myspider
创建我们想要爬取的蜘蛛名--可以理解为想要爬取的数据来源名字,比如本文是豆瓣
- #Termianl终端输入
- #先进入我们的项目目录
- cd myspider
- #创建蜘蛛,scrapy genspider +<爬虫名字> + <允许爬取的域名>
- scrapy genspider douban movie.douban.com
当我们创建完我们的蜘蛛名后,会在spiders里面生成对应的文件名douban.py
如上图,我们的spider子类scrapy.Spider定义了一些属性和方法
name:标识蜘蛛,在一个项目中必须是唯一的
allowed_domains:允许爬取的范围
start_urls:必须返回请求的可迭代(请求列表或者编写生成器函数),我们的爬行器将从该请求开始爬行。后续请求将从这些初始请求中相继生成。
parse():用来编写数据提取,会解析响应,将抓取的数据提取为字典
在items文件中编写我们想要爬取的字段
- import scrapy
- class MyspiderItem(scrapy.Item):
- # define the fields for your item here like:
- # name = scrapy.Field()
- title = scrapy.Field() # 标题
- rating = scrapy.Field() # 评估
- quote = scrapy.Field() # 概述
- #brief_introduction = scrapy.Field() #剧情简介
ROBOTSTXT_OBEY
ROBOTSTXT_OBEY = False
设置为False
DEFAULT_REQUEST_HEADERS
模拟网页登陆的请求头信息
- DEFAULT_REQUEST_HEADERS = {
- 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36',
- }
设置日志输出信息
- LOG_LEVEL = 'WARNING' # 设置日志显示的等级为WARNING
- LOG_FILE = './log.txt' # 将日志信息全部记录到log.txt文件中
编写douban.py文件
- import scrapy
-
- # 自定义spider,继承scrapy.spider
- class DoubanSpider(scrapy.Spider):
- # 爬虫名字
- name = "douban"
- # 允许爬取的范围,防止爬虫爬到别的网站
- allowed_domains = ["movie.douban.com"]
- #开始爬取的url地址
- start_urls = ["https://movie.douban.com/top250"]
-
- def parse(self, response):
- # scrapy的response对象可以直接进行xpath
- li_list = response.xpath('//div[@id="content"]//ol/li')
- for li in li_list:
- #创建一个数据字典,用来存储信息
- item = {}
- item["title"] = li.xpath(".//div[@class='hd']/a/span[1]/text()").extract_first()
- item['rating'] = li.xpath('.//div[@class="bd"]/div/span[2]/text()').extract_first()
- item['quote'] = li.xpath('.//div[@class="bd"]//p[@class="quote"]/span/text()').extract_first()
-
- print(item)
- #运行name对应的名字
- scrapy crawl douban
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。