python爬虫scrapy

目录

1.scrapy安装

 2.scrapy的基本使用

2.1项目的创建

2.2运行

2.3代码示例

3.百度翻译post请求 

4.日志信息及日志等级


1.scrapy安装

scrapy是什么 ?

scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架,可以应用在包括数据挖掘,信息处理或者存储历史数据等一系列的程序中。

三种方法(均为windows)

方法一:使用pip直接安装
打开cmd,输入 pip install scrapy ,回车。

方法二:使用清华镜像
打开cmd,输入 pip install -i https://pypi.tuna.tsinghua.edu.cn/simple scrapy,回车。

常用的几个镜像网址如下:

清华大学镜像:https://pypi.tuna.tsinghua.edu.cn/simple/

阿里云:http://mirrors.aliyun.com/pypi/simple/

中科大镜像:https://pypi.mirrors.ustc.edu.cn/simple/

豆瓣镜像:http://pypi.douban.com/simple/

中科大镜像2:http://pypi.mirrors.ustc.edu.cn/simple/

方法三:先下载Twisted插件,再用pip安装
下载地址:

https://www.lfd.uci.edu/~gohlke/pythonlibs/#twisted

(1)点击下载地址,进入后按 ctrl+f ,搜索twisted,然后下载对应版本

cp27: 表示python2.7版本

cp36: 表示python3.6版本

cp38: 表示python3.8版本

win32: 表示Windows32位操作系统

win_amd64: 表示Windows64位操作系统

(2)下载完成后进入cmd,切换路径到对应文件所在的文件夹下,然后输入pip install 文件名。

举个例子:下载Twisted-18.7.0-cp36-cp36m-win32.whl放在D盘的test文件夹下

① 以管理员身份打开cmd,

② 输入 d: 回车,切换到d盘,

③ 再输入 cd d:\test 回车,切换到文件所在的test文件夹

④ 然后输入pip install Twisted-18.7.0-cp36-cp36m-win32.whl 安装文件。

(如果下载的文件在C盘,去掉 ②,直接 cd 转到对应的文件夹,安装)

(3)安装完成后再使用方法一或方法二的命令输入,回车。

检查是否安装成功,在cmd中输入pip list,查看是否有scrapy

 转https://www.cnblogs.com/wangbin/p/16148701.html

 2.scrapy的基本使用

2.1项目的创建

1.创建爬虫的项目:在终端输入 scrapy startproject 项目的名字

//项目的名字不能使用数字开头,也不能使用中文名字

2.创建爬虫的文件:

//要在spiders文件夹中创建爬虫文件

cd 项目的名字\项目的名字\spiders

      eg:cd scrapy_baidu\scrapy_baidu\spiders

scrapy genspider 爬虫文件的名字  要爬取网页

      eg: scrapy genspider baidu  www.baidu.com

2.2运行

scrapy crawl  baidu(爬虫的名字)

2.3代码示例

import scrapy
class BaiduSpider(scrapy.Spider):
#爬虫的名字 用于运行爬虫时使用的值
name='baidu'
#允许访问的域名,一般不写http://
allowed_domains=['http://www.baidu.com']
#起始的url地址是指第一次要访问的域名
#start_urls是在allowed_domains的前面添加一个http://,在后面添加一个/
start_urls=['http://www.baidu.com/']
#相当于response=urllib.request.urlopen(),response=request.get()
def parse(self,response):
      print('hello world')

会出现错误,被反爬,当我们注释掉ROBOTSTXT_OBEY=True,可以成功运行

 

3.百度翻译post请求 

错误示例

class TestpostSpider(scrapy.Spider):
    name='testpost'
#post请求没有参数,这个请求没有意义,start_urls没有用,parse方法也没有用
    allowed_domains=['https://fanyi.baidu.com/sug']
    start_urls=[https://fanyi.baidu.com/sug/']
    def parse(self,response):
        pass

正确示例 

import json
class TestpostSpider(scrapy.Spider):
    name='testpost'
    allowed_domains=['https://fanyi.baidu.com/sug']

    def self_resquests(self):
        url='https://fanyi.baidu.com/sug'
        data={
           'kw':'smart'
         }
        yield scrapy.FormRequest(url=url,formdata=data,callback=self.parse_seccond)

    def parse_second(self,response):
        content=response.text
        obj=json.loads(content,encoding='utf-8')
        print(obj)

4.日志信息及日志等级

1.日志级别:

CRITICAL     严重错误

ERROR        一般错误

WARNING   警告

INFO            一般信息

DEBUG       调试信息

2.settings.py文件设置

默认级别是DEBUG,会显示上面所有信息

LOG_FILE:将屏幕显示的信息全部记录到文件中,屏幕不再显示,文件后缀是.log

LOG_LEVEL:设置日志显示的等级,就是显示哪些,不显示哪些

完结撒花,爬虫先浅浅入个门!!! 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值