Scrapy-02(系列篇1)-爬蟲&云服務(wù)器定時調(diào)度(以京東零食為例)

這個項(xiàng)目花了近一個月 有點(diǎn)久
主要卡殼在不熟悉云服務(wù)器相關(guān)操作和免費(fèi)動態(tài)IP池構(gòu)造上
又是那種“卡住了 不行 一定要搞定 怎么能先跳過呢” 然后就死磕在一個問題上 浪費(fèi)了不少時間
主要有兩個地(坑)方值得說明下 :

  • 京東搜索頁對阿里云進(jìn)行了IP屏蔽
    本地能夠成功爬取到數(shù)據(jù) 但放到阿里云調(diào)度就沒有數(shù)據(jù)
    添加User-Agent卓研、Cookies 依然沒有下載到數(shù)據(jù)
    為什么搂根!這不科學(xué)甲锡!本地都能抓取 云服務(wù)器就沒有
    然后開始賢者時刻三步走:我是誰舅逸、我在哪奏瞬、我要到哪里去
    最后定位到問題 IP 找了個免費(fèi)IP代理上 服務(wù)器調(diào)度
    Boom Shakalaka 完美洽议! 終于有數(shù)據(jù)了

    騰訊云就沒有被屏蔽 簡直神仙打架 影響到凡人的性生活 譬如我 好死不死 我偏偏就買了阿里云 好死不死 我偏偏就想先爬京東的 然后就撞在了一起就成了坑 當(dāng)然發(fā)現(xiàn)定位這個坑 也花了不少時間 為了埋這個坑 結(jié)果又挖了動態(tài)IP池的坑

  • 動態(tài)IP池
    網(wǎng)上有很多免費(fèi)的代理網(wǎng)站 可以獲取免費(fèi)IP github找到大神的動態(tài)IP池項(xiàng)目就從一堆代理網(wǎng)站中獲取IP 并測試是否可行 當(dāng)然大多數(shù)是沒用的 這些免費(fèi)IP簡直就是老弱病殘荐绝、殘花敗柳、蝦兵蟹將 能打兩下就打(它真的就只能打兩下) 不能打就扔
    實(shí)測總計獲取的五六百個IP 能用就幾個 這還僅僅是能用的 在能用的中連接速度又是慢的一b 經(jīng)常性timeout
    誰讓我是平民玩家 氪金玩家還是去買IP包月套餐吧 既穩(wěn)定又快 也就幾百塊/月 微笑臉

下面是正經(jīng)的整個項(xiàng)目過程

1.云服務(wù)器配置
2.Scrapy爬蟲擼代碼
3.ProxyPool動態(tài)IP代理池
4.云服務(wù)器調(diào)度

工具

  • Pycharm
  • Xshell
  • Python 3.6

1.云服務(wù)器配置

1.1 配置安全組(阿里云)

購買阿里云/騰訊云/吧啦吧啦云后 首先配置下安全組開端口 需自行添加的的端口有SSH:22旷痕、HTTP:80碳锈、HTTPS:443、Scrapyd:6800欺抗、Flask:5000(可選)售碳、Redis(可選)
阿里云端口
1.2 Xshell連接云服務(wù)器(Win下)

開了SSH:22端口后 就可以用Xshell連接 連接輸入公網(wǎng)IP 用戶身份驗(yàn)證輸入云服務(wù)器用戶名和密碼
當(dāng)然也可以選擇其他方法

image.png
image.png

1.3配置服務(wù)器環(huán)境

在Xshell連接服務(wù)器后 搭建相關(guān)環(huán)境

1) 安裝 Java 8
// 查看新系統(tǒng)是否安裝java環(huán)境
$ yum list installed |grep java
// 在線查看java的安裝包列列表
$ yum -y list java*
// 安裝選擇的java版本ram包,我么這?里里安裝的是 java 1.8
$ yum -y install java-1.8.0-openjdk
// 安裝完成之后绞呈,再檢查?一下 java 版本
$ java -version
2) 安裝 Python 3
// 安裝依賴包
$ yum -y groupinstall "Development tools"
$ yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel
sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel
xz-devel
// 下載 Python 3.6.2
$ wget https://www.python.org/ftp/python/3.6.2/Python-3.6.2.tar.xz
// 創(chuàng)建安裝目錄
$ mkdir /usr/local/python3
// 安裝 gcc
$ yum -y install gcc
// 安裝 Python 3.6.2
$ tar -xvJf Python-3.6.2.tar.xz
$ cd Python-3.6.2
$ ./configure --prefix=/usr/local/python3
$ make && make install
// 創(chuàng)建軟連
$ ln -s /usr/local/python3/bin/python3 /usr/bin/python3
$ ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3
// 測試 python3
$ python3 --version
3) 安裝 Python 庫
$ pip3 install scrapy
$ pip3 install bs4
$ pip3 install pymongo
$ pip3 install scrapyd
$ pip3 install scrapyd-client
A.Scrapyd 的配置

Scrapyd配置文件

image.png
然后贸人,我們進(jìn)入下面的路路徑, 通過命令 vim default_scrapyd.conf來編輯這個文件
image.png
默認(rèn)端口號6800 在前面的[阿里云安全組配置中]已經(jīng)開放此端口 這里的端口號佃声,必須在安全組里面開放出來艺智,才能訪問,否則網(wǎng)頁訪問 Scrayd 的控制臺界面是不行的圾亏。

B. 啟動Scrapyd

輸入命令
$ '/usr/local/python3/bin/scrapyd'
或者讓 Scrapyd 能夠在后臺運(yùn)行十拣,不至于關(guān)閉了控制臺,程序也關(guān)掉了(Xshell下)
$ nohup '/usr/local/python3/bin/scrapyd' & 后臺運(yùn)行
在瀏覽器中輸入網(wǎng)址http://XXX.XXX.XX.XXX:6800/ 公網(wǎng)IP和端口號 出現(xiàn)如下界面說明scrapyd啟動成功

Scrapyd瀏覽器頁面
如果需要關(guān)閉志鹃,則首先輸入指令ps -ef | grep scrapyd 來找到 Scrapy 的進(jìn)程 ID 是多少夭问,然后再通過命令 kill <進(jìn)程ID> ,kill 掉進(jìn)程

4) 安裝MongoDB

項(xiàng)目的數(shù)據(jù)曹铃,都是要存儲在 MongoDB 上缰趋,所以,我們這里需要在云服務(wù)器?上安裝MongoDB

// 創(chuàng)建mongodb-org-3.6.repo文件,因?yàn)槲覀円脃um裝
$ touch /etc/yum.repos.d/mongodb-org-3.6.repo
// 編輯mongodb-org-3.6.repo文件
$ vim /etc/yum.repos.d/mongodb-org-3.6.repo

為 mongodb-org-3.6.repo 文件添加一下內(nèi)容

[mongodb-org-3.6]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-
org/3.6/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-3.6.asc

修改完成 :wq保存退出 接著輸命令

// 安裝 MongoDB
$ sudo yum install -y mongodb-org

安裝成功后 配置mongdb文件

// 修改/etc/selinux/config
$ vim /etc/selinux/config

我們需要把 etc/selinux/config 文件里面的 SELINUX改為 SELINUX=permissive
繼續(xù)修改 /etc/mongod.conf 文件
找到下面這句埠胖,添加的是內(nèi)網(wǎng)IP地址 注意是內(nèi)網(wǎng)IP 地址

net:
     port: 27017
    bindIp: 127.0.0.1, XX.XXX.XXX.XX

然后 wq! 退出,接著回來敲命令

$ chown -R mongod:mongod /var/lib/mongo
$ chown -R mongod:mongod /var/log/mongodb
$ mkdir /data/db
// 啟動MongoDB
$ sudo service mongod start
// 關(guān)閉MongoDB
$ sudo service mongod stop
// 重啟MongoDB
$ sudo service mongod restart

推薦使用 Robo 3T 這個可視化 MongoDB 的軟件查看數(shù)據(jù)庫

安裝配置 Robomongo

可以去官網(wǎng) 下載最新程序
配置連接 先在connection菜單中填寫內(nèi)網(wǎng)IP
然后在SSH菜單填寫公網(wǎng)IP淳玩、賬號密碼

image.png
這是連接成功后的數(shù)據(jù)庫
image.png

5) 安裝Redis(可選)

官網(wǎng)下載

$ wget http://download.redis.io/releases/redis-5.0.0.tar.gz
$ tar xzf redis-5.0.0.tar.gz
$ cd redis-5.0.0
$ make

修改配置文件redis.conf
protected-mode yes 更改為no
daemonize no 添加進(jìn)程守護(hù) 后臺運(yùn)行 更改為yes
bind 127.0.0.1 更改為0.0.0.0
#requirepass foobared去掉注釋 修改新密碼

image.png
image.png
image.png
更改后 啟動服務(wù)
redis-server redis.conf
使用 RedisDesktopManager 這個可視化 Redis的軟件查看數(shù)據(jù)庫 記得在服務(wù)器安全組開放6379端口
image.png

云服務(wù)器配置到此就結(jié)束

終于可以擼碼

下一篇 Scrapy爬蟲擼代碼
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末直撤,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子蜕着,更是在濱河造成了極大的恐慌谋竖,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,378評論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件承匣,死亡現(xiàn)場離奇詭異蓖乘,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)韧骗,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,970評論 3 399
  • 文/潘曉璐 我一進(jìn)店門嘉抒,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人袍暴,你說我怎么就攤上這事些侍。” “怎么了政模?”我有些...
    開封第一講書人閱讀 168,983評論 0 362
  • 文/不壞的土叔 我叫張陵岗宣,是天一觀的道長。 經(jīng)常有香客問我淋样,道長耗式,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,938評論 1 299
  • 正文 為了忘掉前任趁猴,我火速辦了婚禮刊咳,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘儡司。我一直安慰自己芦缰,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,955評論 6 398
  • 文/花漫 我一把揭開白布枫慷。 她就那樣靜靜地躺著让蕾,像睡著了一般。 火紅的嫁衣襯著肌膚如雪或听。 梳的紋絲不亂的頭發(fā)上探孝,一...
    開封第一講書人閱讀 52,549評論 1 312
  • 那天,我揣著相機(jī)與錄音誉裆,去河邊找鬼顿颅。 笑死,一個胖子當(dāng)著我的面吹牛足丢,可吹牛的內(nèi)容都是我干的粱腻。 我是一名探鬼主播庇配,決...
    沈念sama閱讀 41,063評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼绍些!你這毒婦竟也來了捞慌?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,991評論 0 277
  • 序言:老撾萬榮一對情侶失蹤柬批,失蹤者是張志新(化名)和其女友劉穎啸澡,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體氮帐,經(jīng)...
    沈念sama閱讀 46,522評論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡嗅虏,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,604評論 3 342
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了上沐。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片皮服。...
    茶點(diǎn)故事閱讀 40,742評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖参咙,靈堂內(nèi)的尸體忽然破棺而出冰更,到底是詐尸還是另有隱情,我是刑警寧澤昂勒,帶...
    沈念sama閱讀 36,413評論 5 351
  • 正文 年R本政府宣布蜀细,位于F島的核電站,受9級特大地震影響戈盈,放射性物質(zhì)發(fā)生泄漏奠衔。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,094評論 3 335
  • 文/蒙蒙 一塘娶、第九天 我趴在偏房一處隱蔽的房頂上張望归斤。 院中可真熱鬧,春花似錦刁岸、人聲如沸脏里。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,572評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽迫横。三九已至,卻和暖如春酝碳,著一層夾襖步出監(jiān)牢的瞬間矾踱,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,671評論 1 274
  • 我被黑心中介騙來泰國打工疏哗, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留呛讲,地道東北人。 一個月前我還...
    沈念sama閱讀 49,159評論 3 378
  • 正文 我出身青樓,卻偏偏與公主長得像贝搁,于是被迫代替她去往敵國和親吗氏。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,747評論 2 361

推薦閱讀更多精彩內(nèi)容