原创 scrapy 404 問題 & HTTP status code is not handled or not allowed

背景:在使用scrapy爬取網頁時,當一個頁面的http code是404時,scrapy會略掉它,然而,如果你想在爬蟲裏對http code是404,做特殊處理的時候,就不會應驗。 解決辦法: 在settings 文件裏 加上

原创 scrapy假死

背景:進程還在跑,數據沒有產出,日誌記錄停留在昨天. 解決辦法:在settings裏設置timeout DOWNLOAD_TIMEOUT = 15 # timeout 爲15s PS:還有電腦休眠也會導致這個問題,例如: MA

原创 Gitlab Failed to squash

背景: 在gitlab提交merge的時候遇到了這個情況. 原因: 同一個分支提交多次merge. 解決辦法:取消勾選squash選項,或者重新建個分支提交.

原创 Python 查看虛擬環境安裝包地址

背景: 想改虛擬環境的包. 方法: 1、進入虛擬環境後,pip 安裝一個已安裝的包,然後系統就會提示你,這個包啊,已經在哪裏安裝好了. 2、虛擬環境的包,一般在/用戶/.virtualenvs/環境名/lib/python版本/s

原创 scrapy 忽略|屏蔽請求

背景:有時候在scrapy中,我們經常會碰到一些我們並不需要的url請求,一是它會帶來髒數據,而是它會佔用請求資源,造成不必要浪費. 解決辦法:碰到這種情況,我們可以自己寫一個過濾這些請求的中間件(middleware). 比如,

原创 python leetcode系列之整數反轉

題目要求 :給出一個 32 位的有符號整數,你需要將這個整數中每位上的數字進行反轉。假設我們的環境只能存儲得下 32 位的有符號整數,則其數值範圍爲 [−231, 231 − 1]。請根據這個假設,如果反轉後整數溢出那麼就返回

原创 scrapinghub 傻瓜教程

部署scrapy到scrapinghub 踩坑詳盡記錄. 1、註冊scrapinghub賬號,沒有scrapinghub賬號是無法部署爬蟲的. 2、創建項目(找到圖下按鈕): 3、再創建完項目之後,scrapinghub會提供A

原创 windows DNS污染解決

背景:在爬ins 的時候,稀裏糊塗的就dns污染了,然後就不能爬取。 解決辦法: 1、右鍵田圖標: 2、 輸入ipconfig /flushdns, 大部分人在這裏就已經刷好dns可以上了,但我的還是不行。 3、後來我替換了D

原创 爬蟲爬取js渲染網站的思路

如何辨別哪些網站時js渲染的網站? 使用requests庫訪問得到網頁文本是否與瀏覽器得到的網頁文本一致,若不一致(可能會存在因瀏覽器不同,導致不同結構的細微差異),網站多多少少存在js渲染的情況。 如何爬取js渲染的網站呢? 在

原创 Ubuntu 關於磁盤掛載

背景:我們想要用本地取代部分線上的消耗。所以在本地掛了一個大磁盤。 矛盾在於掛載後。普通用戶沒有讀寫和mkdir的權限(chomd 以及chown都解決不了)。 解決辦法:在mount命令後面加上:dir_mode=0777,fi

原创 python爬蟲之多線程、多進程爬蟲

一、原因 多線程對爬蟲的效率提高是非凡的,當我們使用python的多線程有幾點是需要我們知道的: 1.Python的多線程並不如java的多線程,其差異在於當python解釋器開始執行任務時,受制於GIL(全局解釋所),Pytho

原创 python3獲取linux IP地址

背景:我想知道哪臺機器上跑了代碼,打算用ip地址作爲甄別的依據. 代碼: def get_ip(if_name): # get machine ip s = socket.socket(socket.AF_I

原创 scrapy AWS圖片存儲

scrapy將爬取下來的圖片存儲到AWS 的 S3 bucket上. 一.在settings裏面配置AWS 現有的scrapy還不支持boto3,只有boto,但我還是加上了AWS這些參數(在boto3裏是必需的). 二. 你需要

原创 scrapy 運行多爬蟲

背景:scrapy是支持多爬蟲啓動的,有兩種方式. 你可以使用scrapy.crawler.CrawlerProcess這個類來運行你的spider,這個類會爲你啓動一個Twisted reactor,並能配置你的日誌和shutd

原创 Ubuntu You might want to run 'apt-get -f install' to correct these:

一般是Ubuntu bool目錄滿了,需要清除不需要的內核,錯誤如下: 先列出內核: sudo dpkg --list 'linux-image*'|awk '{ if ($1=="ii") print $2}'|grep -