python中的scrapy爬虫_Python用Scrapy爬虫入门案例

本文介绍了Anaconda的特性,它包含180多个科学包,重点讲解了conda包管理器的作用,如快速安装、环境管理等。还详细阐述了如何在PyCharm中配置不同版本的Python解释器,并演示了如何通过conda安装Scrapy,创建Scrapy项目,设置项目参数以及启动爬虫。此外,提到了一些关键的爬虫配置选项,如并发请求、下载延迟和自定义请求头。
摘要由CSDN通过智能技术生成

安装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项目

1ea5cfbbc6b3cd54b2e388adfea91906.png

你可以选择不同版本的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)

585732de58459b7d3c138772ee0e87b5.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值