-
1111查看全部
-
將爬蟲(chóng)得到的item保存到CSV文件中
scrapy crawl spider -o test.csv
查看全部 -
當(dāng)在spider模塊中有需要解析的新的URL請(qǐng)求時(shí)
yield scrapy.Request(url, callback = self.parse)
查看全部 -
3。6查看全部
-
Scrapy項(xiàng)目注意事項(xiàng)
查看全部 -
爬蟲(chóng)偽裝:設(shè)置代理IP 在middleware中編寫(xiě),settings中也要開(kāi)啟
查看全部 -
Scrapy框架
查看全部 -
開(kāi)發(fā)環(huán)境
cent os 6.0
Python 3.6
Scrapy 1.5
MongoDB 3.6
Pycharm
課程大綱
查看全部 -
scrapy crawl spider名
settings.py中要設(shè)置USER_AGENT,其值可以通過(guò)瀏覽器的F12中查找獲取(Request Headers)
查看全部 -
爬蟲(chóng)偽裝方法:動(dòng)態(tài)user-agent
查看全部 -
request.meta['proxy'] = 'http-cla.abuyun.com:9030'
如果按照視頻中的寫(xiě),其他都一樣,運(yùn)行main.py,那么會(huì)提示如下錯(cuò)誤。
?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://就可以了
查看全部 -
數(shù)據(jù)存儲(chǔ)
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文件
開(kāi)頭增加代碼
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文件打開(kāi)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'
命令行啟動(dòng)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: 自己服務(wù)器的IP地址或者0.0.0.0
把bindIP設(shè)置為0.0.0.0(表示監(jiān)聽(tīng)所有的網(wǎng)口地址)
啟動(dòng)mongodb服務(wù)
service mongod start
添加mongodb的yum源
yum clear all
yum -y install mongodb-org
vim /etc/mongod.conf
修改bindIp
/etc/init.d/mongod restart
開(kāi)放27017端口
查看全部 -
Scrapy框架:
Scrapy Engine: Scrapy引擎,負(fù)責(zé)Spiders,ItemPipline,Scheduler,Downloader中間的通信信號(hào)和數(shù)據(jù)的傳遞,相當(dāng)于是一個(gè)交通站。
Scheduler: Scrapy的調(diào)度器,就是一個(gè)隊(duì)列,負(fù)責(zé)接收引擎發(fā)送過(guò)來(lái)的request請(qǐng)求,然后將請(qǐng)求排隊(duì),當(dāng)引擎需要請(qǐng)求數(shù)據(jù)的時(shí)候,就將請(qǐng)求隊(duì)列中的數(shù)據(jù)交給引擎。
Downloader: Scrapy的下載器,負(fù)責(zé)發(fā)送請(qǐng)求并下載數(shù)據(jù),負(fù)責(zé)下載引擎發(fā)送過(guò)來(lái)的所有request請(qǐng)求,并將獲取到的response交還給引擎,然后再由引擎將response交給Spiders來(lái)進(jìn)行解析。
Spiders: Scrapy的爬蟲(chóng),它是一個(gè)正則表達(dá)式組價(jià),里面包含很多解析策略,用于分析和提取數(shù)據(jù),負(fù)責(zé)處理所有的response,而如果response包含有其他請(qǐng)求,此時(shí)Spiders會(huì)將這個(gè)請(qǐng)求提交給引擎,再由引擎將這些url再次扔到Scheduler進(jìn)行處理。
Item Pipeline: Scrapy的管道,用于封裝去重類,存儲(chǔ)類的地方,負(fù)責(zé)處理Spiders中獲取到的數(shù)據(jù),并且進(jìn)行后期的處理,過(guò)濾或者存儲(chǔ)等。
Downloader Middlewares: 下載中間件,自定義擴(kuò)展組件,就是封裝代理或者h(yuǎn)ttp請(qǐng)求頭用于隱藏我們自己。
Spider Middlewares: 爬蟲(chóng)中間件,可以自定義擴(kuò)展引擎Spiders的中間通信功能的組件,比如進(jìn)入Spiders的response和從Spders出去的request,它可以在中間做一些修改。
查看全部
舉報(bào)