目录
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
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:设置日志显示的等级,就是显示哪些,不显示哪些
完结撒花,爬虫先浅浅入个门!!!