Python用Scrapy爬虫入门案例

安装Anaconda详细介绍

下载

下载完整包

如果日常工作或学习并不必要使用1,000多个库,那么可以考虑安装Miniconda(图形界面下载及命令行安装请戳),这里不过多介绍Miniconda的安装及使用。

Anaconda

Anaconda是一个包含180+的科学包及其依赖项的发行版本。其包含的科学包包括:conda, numpy, scipy, ipython notebook等。
② conda
conda是包及其依赖项和环境的管理工具。

适用语言:Python, R, Ruby, Lua, Scala, Java, JavaScript, C/C++, FORTRAN。

适用平台:Windows, macOS, Linux

用途:

快速安装、运行和升级包及其依赖项。
在计算机中便捷地创建、保存、加载和切换环境。
如果你需要的包要求不同版本的Python,你无需切换到不同的环境,因为conda同样是一个环境管理器。仅需要几条命令,你可以创建一个完全独立的环境来运行不同的Python版本,同时继续在你常规的环境中使用你常用的Python版本。——conda官方网站

conda为Python项目而创造,但可适用于上述的多种语言。

conda包和环境管理器包含于Anaconda的所有版本当中。

在Pycharm中创建scrapy项目

在这里插入图片描述
你可以选择不同版本的python version,就是你可以为3.7设置一个解释器,为2.7设置一个解释器。
当你要编写2.7版本python的程序时,即插即用设置成2.7版本的解释器就ok。
如果要编写3.7版本python的程序时,即插即用设置成3.7版本的解释器就ok。

安装scrapy

conda install scrapy

初始化项目
You can start your first spider with:

cd app
scrapy genspider example example.com

settings.py

打开文件settings.py

BOT_NAME:项目名

USER_AGENT:默认是注释的,这个东西非常重要,如果不写很容易被判断为电脑,简单点洗一个Mozilla/5.0即可

ROBOTSTXT_OBEY:是否遵循机器人协议,默认是true,需要改为false,否则很多东西爬不了

CONCURRENT_REQUESTS:最大并发数,很好理解,就是同时允许开启多少个爬虫线程

DOWNLOAD_DELAY:下载延迟时间,单位是秒,控制爬虫爬取的频率,根据你的项目调整,不要太快也不要太慢,默认是3秒,即爬一个停3秒,设置为1秒性价比较高,如果要爬取的文件较多,写零点几秒也行

COOKIES_ENABLED:是否保存COOKIES,默认关闭,开机可以记录爬取过程中的COKIE,非常好用的一个参数

DEFAULT_REQUEST_HEADERS:默认请求头,上面写了一个USER_AGENT,其实这个东西就是放在请求头里面的,这个东西可以根据你爬取的内容做相应设置。

ITEM_PIPELINES:项目管道,300为优先级,越低越爬取的优先度越高

导出为json或scv格式

执行爬虫文件时添加-o选项即可

scrapy crawl 项目名 -o *.csv

scrapy crawl 项目名 -o *.json

对于json文件,在setting.js文件里添加,设置编码格式,否则会乱码:

FEED_EXPORT_ENCODING=‘utf-8’

爬取百度title标签内容

需要安装protego模块

import scrapy
#from protego import Protego
class QuoteSpider(scrapy.Spider):
    name = 'baidu'
    allowed_domains =['www.baidu.com']
    start_urls = ['http://www.baidu.com']
    def parse(self, response, ):
        tile = response.xpath('//html/head/title/text()')
        print(tile)

在这里插入图片描述

posted @ 2022-11-11 20:47  小匠i  阅读(110)  评论(0编辑  收藏  举报