Scrapy框架:
Scrapy Engine: Scrapy引擎,负责Spiders,ItemPipline,Scheduler,Downloader中间的通信信号和数据的传递,相当于是一个交通站。
Scheduler: Scrapy的调度器,就是一个队列,负责接收引擎发送过来的request请求,然后将请求排队,当引擎需要请求数据的时候,就将请求队列中的数据交给引擎。
Downloader: Scrapy的下载器,负责发送请求并下载数据,负责下载引擎发送过来的所有request请求,并将获取到的response交还给引擎,然后再由引擎将response交给Spiders来进行解析。
Spiders: Scrapy的爬虫,它是一个正则表达式组价,里面包含很多解析策略,用于分析和提取数据,负责处理所有的response,而如果response包含有其他请求,此时Spiders会将这个请求提交给引擎,再由引擎将这些url再次扔到Scheduler进行处理。
Item Pipeline: Scrapy的管道,用于封装去重类,存储类的地方,负责处理Spiders中获取到的数据,并且进行后期的处理,过滤或者存储等。
Downloader Middlewares: 下载中间件,自定义扩展组件,就是封装代理或者http请求头用于隐藏我们自己。
Spider Middlewares: 爬虫中间件,可以自定义扩展引擎Spiders的中间通信功能的组件,比如进入Spiders的response和从Spders出去的request,它可以在中间做一些修改。
spider编写
scrapy爬虫框架入门与实战学习课程大纲
1.scrapy介绍
2.scrapy的安装
3.scrapy在安装时经常遇到的坑
4.mongodb的安装(数据库)
代码和注释
Scrapy框架
Scrapy Engine :引擎,中间连接站
Spider:负责对引擎发来response进行处理,分离干货:数据和新的request
Scheduler:request队列,负责将Spider发来的request请求排列
Downloader:负责下载引擎发来的所有request请求
Item Pipline:负责处理Spider中的数据。并且进行过滤或存储。
Python爬虫框架Scrapy
作用:抓取数据进行分析
开发环境:Centos6.0,Scrapy1.5,Python3.0,Mongdb3.6,Pycharm
windows下的安装
pip3 install scrapy
Python3安装模块报错Microsoft Visual C++ 14.0 is required的解决方法
在https://www.lfd.uci.edu/~gohlke/pythonlibs
找到对应版本的对应库下载复制到python3安装目录的Scripts下,
我这里显示Twisted安装失败
pip3 install 文件名(.whl)
pip3 install scrapy
vim /etc/mongod.conf
屏蔽bindIp或改为局域网地址或0.0.0.0等
重启mongodb
sudo /etc/init.d/mongod restart
关闭防火墙
sudo /etc/init.d/iptables stop sudo chkconfig iptables off
原文链接 https://www.cnblogs.com/tianyamoon/p/9860656.html
其他参考链接 https://www.cnblogs.com/weiyiyong/p/9386015.html
1.配置MongoDB的yum源
创建yum源文件:
#cd /etc/yum.repos.d
#vim mongodb-org-4.0.repo
添加以下内容:(我们这里使用阿里云的源)
[mngodb-org] name=MongoDB Repositorybaseurl= gpgcheck=0 enabled=1
这里可以修改 gpgcheck=0, 省去gpg验证
清理安装源 yum clear all
安装之前先更新所有包 :
# yum update
2.安装MongoDB
安装命令:
yum -y install mongodb-org
安装完成后
查看mongo安装位置 whereis mongod
查看修改配置文件 : vim /etc/mongod.conf
bindIp: 172.0.0.1 改为 bindIp: 0.0.0.0
(注意冒号与ip之间需要一个空格)
3.启动MongoDB
启动mongodb :systemctl start mongod.service
停止mongodb :systemctl stop mongod.service
查到mongodb的状态:systemctl status mongod.service
4.外网访问需要关闭防火墙:
CentOS 7.0默认使用的是firewall作为防火墙,这里改为iptables防火墙。
关闭firewall:
systemctl stop firewalld.service #停止firewall
systemctl disable firewalld.service #禁止firewall开机启动
vim /etc/sysconfig/iptables
iptables文件添加
-A INPUT -m state --state NEW -m tcp -p tcp --dport 27017 -j ACCEPT
(注意:-A INPUT -m state --state NEW -m tcp -p tcp --dport 27017 -j ACCEPT要加在-A INPUT -j REJECT --reject-with icmp-host-prohibited之前,不然启动无效)
重启iptables
service iptables restart
5.设置开机启动
systemctl enable mongod.service
6.启动Mongo shell
命令:mongo
查看数据库:show dbs
7.需要的话启用权限控制:
编辑mongod.conf注释bindIp,并重启mongodb.
vim /etc/mongod.conf
重启mongodb:systemctl restart mongod.service
Scrapy注意事项:
代理IP设置:
scrapy框架:
NoSQL manager for mongodb freeware
在windows上也可以,python的可移植性贼强。当然Windows上也支持Scrapy库啦。
<p>在windows上也可以,python的可移植性贼强。当然Windows上也支持Scrapy库啦。之所以很多都强调用药linux来操作python,主要公司里的生产环境都是部署在服务器上的。而服务器的操作系统基本都是centos,redhat,乌班图之类的,所以,学python,一定要会一些linux的操作命令</p>好的点都德
content_s = '' for i_content in content: #去掉空格并连接 content_s += "".join(i_content.split()) douban_item['introduce'] = content_s
111111111111111
编写解析文件
11111111111111
在pycharm中设置一个启动文件,每次运行就不用在CentOS中写命令了
粘贴到这里
复制User-agent
还是有报错:返回403
这下再执行豆瓣项目
安 装
制作make文件