原创 利用 Redis 實現一個爬蟲系統循環代理池

前言 最近在實現爬蟲系統的時候,用到了 http 代理。我有一系列的代理,使用的時候要在分佈式的環境中實現循環的使用。這裏我們就採用了 redis 的 list 數據結構來實現 redis list 命令解釋 首先我們來看一下 redis

原创 CentOS7 Squid 網絡代理安裝和配置

爬蟲代理的作用 在我們的爬蟲系統中,如果在一臺服務器上不停的訪問通一個目標站點,很有可能因爲對方的發爬蟲策略而將您的爬蟲請求給阻止,導致您無法獲取網站的信息。所以我們一般採用一個代理池的方式,不停的切換代理,將爬蟲的請求僞裝成爲不同代理髮起

原创 不一樣的 Java 日期格式化大全

前言 在 Java 中,經常要將時間字符串轉換爲日期,或者要將日期轉換爲時間字符串。這種操作一般都是用 java.text.SimpleDateFormat 類處理。例如要將日期轉換爲時間字符串,那麼就用下面的代碼。 new Simple

原创 在微服務中進行日誌跟蹤的理論基礎

在一個單體的應用程序中,我們只用簡單的將日誌記錄到日誌文件裏面就能夠方便的查看服務的運行狀態。但是在由衆多微服務構成的系統中,服務之間的依賴調用是比較常見的。 如上圖所示,如果一個用戶調用了一個服務 A ,服務 A 同時調用了服務 B

原创 國內下載chromedriver 以及支持的 chrome 版本對應關係

國內下載 chromedriver chromedriver 下載的原始地址是在 google 的服務器上的。因爲國內防火牆的原因,是沒法下載的。所幸國內還有鏡像站可以選擇,我找到一個淘寶的一個鏡像站 http://npm.taobao.o

原创 linux 環境下 Java 運行 selenium 無界面 chrome 環境設置

前言 《Java 中使用 selenium 和 chrome 瀏覽器下載動態網頁》 一文中,演示瞭如何在 window 環境下通過 selenium 和 chrome 來下載動態網頁。但是我們的爬蟲一般是運行在 linux 服務器上的。服務

原创 SpringBoot 開發一個可以在 Web 容器中運行的 War 程序

前言 前面的文章的 web 程序的樣例都是一個個獨立運行的 jar 包的形式。這種方式使用起來很方便,但是也有時候有需求要將 SpringBoot 開發的 web 程序放到一個 web 容器例如 Tomcat 中去運行。這個時候就需要將 S

原创 網絡爬蟲基礎

什麼是爬蟲 據統計,現在互聯網上的流量,一半以上都來自各種網絡爬蟲。所謂爬蟲就是一些自動運行的程序,他們模擬人的行爲訪問互聯網上的資源。例如 12306 的搶票軟件,就是一個典型的爬蟲程序。他通過 12306 的接口來自動進行餘票的查詢、下

原创 Java 中使用 selenium 和 chrome 瀏覽器下載動態網頁

前言 上一篇文章《用 jsoup 分析下載的 html 內容》 中提到過,當我們用 OkHttp 下載網頁的時候,發現下載的內容中沒有我們在瀏覽器上看到的閱讀數、評論數、喜歡數這三部分的內容。當時解釋過是因爲這些內容是瀏覽器通過 JS 動態

原创 用 jsoup 分析下載的 html 內容

下載內容的分類 從前一篇文章,我們可以看到,下載並需要進行分析和處理的內容基本上就是 html 和 json 兩類。其餘的圖片、視頻、 PDF 和其他的二進制文件則一般都是直接保存即可,不在本文的討論範圍內。本文先討論如何分析 html 內

原创 勾起童年記憶的小花園

在這座繁華都市呆了很多年,好像周圍的一切都不能讓自己的內心起什麼波瀾。大概生活就是這樣無驚無喜的狀態。 這幾個週末,來公司加班的時候,走了一條不常走的路,上週突然發現街邊新建了一個小的街心公園,而是信步拐進去。普通的一個花園,不過所在的位置