-
1111查看全部
-
将爬虫得到的item保存到CSV文件中
scrapy crawl spider -o test.csv
查看全部 -
当在spider模块中有需要解析的新的URL请求时
yield scrapy.Request(url, callback = self.parse)
查看全部 -
3。6查看全部
-
Scrapy项目注意事项
查看全部 -
爬虫伪装:设置代理IP 在middleware中编写,settings中也要开启
查看全部 -
Scrapy框架
查看全部 -
开发环境
cent os 6.0
Python 3.6
Scrapy 1.5
MongoDB 3.6
Pycharm
课程大纲
查看全部 -
scrapy crawl spider名
settings.py中要设置USER_AGENT,其值可以通过浏览器的F12中查找获取(Request Headers)
查看全部 -
爬虫伪装方法:动态user-agent
查看全部 -
request.meta['proxy'] = 'http-cla.abuyun.com:9030'
如果按照视频中的写,其他都一样,运行main.py,那么会提示如下错误。
File "/home/ubuntu16/.local/lib/python3.5/site-packages/twisted/web/client.py", line 1513, in endpointForURI
raise SchemeNotSupported("Unsupported scheme: %r" % (uri.scheme,))
twisted.web.error.SchemeNotSupported: Unsupported scheme: b''
解决方法:request.meta['proxy'] = 'http://http-cla.abuyun.com:9030'
即加上http://就可以了
查看全部 -
数据存储
json格式
scrapy crawl douban_spider -o teset.json
csv格式
scrapy crawl douban_spider -o teset.csv
mongodb
settings文件定义mongo变量
mongo_host = '192.168.186.129'
mongo_port = 27017
mongo_db_name = 'douban'
mongo_db_collection = 'douban_movie'
安装pymongo
yum -y install pymongo
编辑pipelines文件
开头增加代码
import pymongo
from douban.settings import mongo_host, mongo_port, mongo_db_name, mongo_db_collection
在类DouanPipeline下增加方法__init__
def __init__(self):
host = mongo_host
port = mongo_port
dbname = mongo_db_name
sheetname = mongo_db_colleciton
client = pymongo.MongoClient(host=host, port=port)
mydb = client[dbname]
self.post = mydb[sheetname]
在settings文件打开ITEM_PIPELINES
查看全部 -
安装sqlite
yum -y install sqlite*
重新编译python
修改setttings文件
USER_AGENT = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3627.0 Safari/537.36'
命令行启动spider
scrapy crawl douban_spider
查看全部 -
配置yum源
vi /etc/yum.repos.d/mongo.repo
粘贴
[mongodb-org-4.0]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/7Server/mongodb-org/4.0/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-4.0.asc
清理安装源
yum clean all
安装mongodb
yum -y intall mongodb-org
修改mongodb配置
vi /etc/mongod.conf
bindIp: 自己服务器的IP地址或者0.0.0.0
把bindIP设置为0.0.0.0(表示监听所有的网口地址)
启动mongodb服务
service mongod start
添加mongodb的yum源
yum clear all
yum -y install mongodb-org
vim /etc/mongod.conf
修改bindIp
/etc/init.d/mongod restart
开放27017端口
查看全部 -
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,它可以在中间做一些修改。
查看全部
举报