前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Scrapy框架(一):基本使用

Scrapy框架(一):基本使用

作者头像
花猪
发布2022-02-16 15:24:09
5460
发布2022-02-16 15:24:09
举报

前言

本篇文章简单介绍一下Scrapy框架的基本使用方法,以及在使用过程中遇到的一些问题和解决方案。

Scrapy框架的基本使用

环境的安装

1.输入下述指令安装wheel

代码语言:javascript
复制
pip install wheel

2.下载twisted

这里提供一个下载链接:http://www.lfd.uci.edu/~gohlke/pythonlibs/#twisted

注:这里下载有两点需要注意:

  1. 要下载与自己python版本相对应的文件,cpxx为版本号。(例如我的python版本为3.8.2,就下载cp38的文件)
  2. 根据操作系统位数下载对应文件。32位操作系统下载win32;64位操作系统下载win_amd64。

3.安装twisted

在上一步下载好的twisted的目录下输入下面的命令:

代码语言:javascript
复制
pip install Twisted-20.3.0-cp38-cp38-win_amd64.whl

4.输入下述指令安装pywin32

代码语言:javascript
复制
pip install pywin32

5.输入下述指令安装scrapy

代码语言:javascript
复制
pip install scrapy

6.测试

在终端里输入scrapy命令,没有报错即表示安装成功。

创建scrapy工程

这里是在PyCharm中创建的scrapy工程

1.打开Terminal面板,输入下述指令创建一个scrapy工程

代码语言:javascript
复制
scrapy startproject ProjectName

ProjectName为项目名称,自己定义。

2.自动生成如下目录

3.创建一个爬虫文件

首先进入刚刚创建的工程目录下:

代码语言:javascript
复制
cd ProjectName

然后在spiders子目录中创建一个爬虫文件

代码语言:javascript
复制
scrapy genspider spiderName www.xxx.com

spiderName为爬虫文件名称,自己定义。

4.执行工程

scrapy crawl spiderName

文件参数的修改

为了能更好的执行爬虫项目,需要修改一些文件的参数。

1.spiderName.py

该爬虫文件的内容如下:

代码语言:javascript
复制
import scrapy

class FirstSpider(scrapy.Spider):
    # 爬虫文件的名称:就是爬虫源文件的一个唯一标识
    name = 'spiderName'
    # 允许的域名:用来限定start_urls列表中哪些url可以进行请求发送
    allowed_domains = ['www.baidu.com']
    # 起始的url列表:该列表中存放的url会被scrapy自动进行请求的发送
    start_urls = ['http://www.baidu.com/','https://www.douban.com']

    # 用于数据解析:response参数表示的就是请求成功后对应的响应对象
    def parse(self, response):
        pass

注:allowed_domains列表用来限定请求的url。一般情况不需要,将其注释掉即可。

2.settings.py

1). ROBOTSTXT_OBEY

找到ROBOTSTXT_OBEY关键字,此处默认参数为Ture。(即项目默认遵守robots协议)为了项目练习,可以暂时将其改为False

代码语言:javascript
复制
# Obey robots.txt rules
ROBOTSTXT_OBEY = False

2). USER_AGENT

找到USER_AGENT关键字,此处默认注释掉了。修改其内容,以避免UA反爬。

代码语言:javascript
复制
# Crawl responsibly by identifying yourself (and your website) on the user-agent
USER_AGENT = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36 Edg/88.0.705.50'

3). LOG_LEVEL

为了更清晰的查看项目运行结果(项目默认运行结果会打印大量的日志信息),可以手动添加LOG_LEVEL关键字。

# 显示指定类型的日志信息 LOG_LEVEL = 'ERROR' # 只显示错误信息

可能遇到的问题

1.成功安装完scrapy,但是在创建爬虫文件后依然显示import scrapy有误。

本人练习时用的环境都是基于Python3.8创建的各种虚拟环境,然而在搭建scrapy项目时pip install scrapy始终报错。

最初手动在官网:https://scrapy.org/ 下载scrapy库,然后安装到虚拟环境的site-packages目录下,果然回头看import scrapy显示正常了,程序也可以跑。但是依然打印大量的错误信息,通过PyCharm的Python Interpreter查看并没有Scrapy库在内。

无奈又尝试了一些解决方案,无果…

最后发现Anaconda自带Scrapy库,于是又基于Anaconda创建了一个虚拟环境,完美运行~~~~

结尾

好好学习

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021-01-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • Scrapy框架的基本使用
    • 环境的安装
      • 创建scrapy工程
        • scrapy crawl spiderName
          • 文件参数的修改
            • # 显示指定类型的日志信息 LOG_LEVEL = 'ERROR' # 只显示错误信息
            • 可能遇到的问题
            • 结尾
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档