Scrapy学习笔记

安装Scrapy

pip install scrapy

创建项目

scrapy startproject project_name

项目中的目录和文件的作用如下:

scrapy.cfg:Scrapy 项目的配置文件。
project_name/:Scrapy 项目的 Python 包。
init.py:Python 包必须包含的文件,用于标识该目录为一个 Python 包。
items.py:定义 Scrapy 爬虫要抓取的数据模型。
middlewares.py:定义 Scrapy 爬虫的中间件。
pipelines.py:定义 Scrapy 爬虫的数据处理管道。
settings.py:Scrapy 项目的全局配置文件。
spiders/:存放 Scrapy 爬虫的目录。
init.py:标识 spiders/ 目录为 Python 包。
spiders.py:存放 Scrapy 爬虫的 Python 文件。

Pycharm打开项目

用pycharm菜单open选择刚刚创建出来的项目文件夹
如果使用虚拟环境,因为虚拟环境是一份python基础运行环境的副本,所以打开文件夹项目后需要在虚拟环境中再次安装scrapy!,一遍将将scrapy安装到虚拟环境中

pip install scrapy

创建蜘蛛

在pycharm命令行中,使用

scrapy genspider spider-name website-url

命令创建一个新的蜘蛛。

例如,如果您要创建一个名为“mySpider”的蜘蛛,并爬取“http://www.example.com”网站,
您可以使用以下命令:

scrapy genspider mySpider http://www.douban.com

进入项目目录,编辑刚刚创建的蜘蛛。默认情况下,蜘蛛应该在project-name/spiders目录中。打开蜘蛛文件,可以看到其中有一个名为start_urls的属性,它包含了蜘蛛开始爬取的URL列表。可以添加更多的URL到这个列表中。

实现解析方法定义爬虫逻辑

response.xpath()方法来选择要提取的元素,然后使用Item()类将其保存到数据库或文件中。例如,以下代码可以提取网页中的所有标题:

示范1:

def parse(self, response):
	#如果使用css可以用用 response.css()
    for title in response.xpath('//h1'):
        yield {
            'title': title.extract()
        }

示范2

import scrapy
from  spider2023 import Item

class DoubanSpider(scrapy.Spider):
    name = "douban"
    allowed_domains = ["movie.douban.com"]
    start_urls = ["https://movie.douban.com/top250"]

    def parse(self, response):
        listItems= response.css("#content > div > div.article > ol > li")
        for item in listItems:
            itemObj=Item.Item()
            itemObj["title"]= item.css("span.title::text").extract_first()
            yield itemObj

pycharm内运行蜘蛛

运行蜘蛛。在pycharm命令行中,使用scrapy crawl spider-name -o xxx.csv命令来运行蜘蛛。例如,如果您要运行名为“mySpider”的蜘蛛,您可以使用以下命令:scrapy crawl mySpider -o xxx.csv

运行完成后,数据将被保存到 项目目录xxx.csv文件中

果您希望将数据保存到数据库中,您需要编写一个自定义的pipeline。

pycharm外运行蜘蛛

D:\spider2023>venv\Scripts\scrapy crawl douban -o doubanResult.csv
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值