1. 程式人生 > >golang 爬蟲實現(一)

golang 爬蟲實現(一)

一、環境準備

1、編譯器,intellij idea。

下載完,直接安裝。安裝之後的編輯器不支援golang。需要新增支援golang的外掛,新增外掛有兩種方法。

第一種:

(1)點選file->setttings->plugins->Browse Repositories;

(2)搜尋go,找到後,點選install,重起編譯器;

第二種:

2、golang編譯環境。

編譯環境安裝也有兩種。

第一種:

直接上官網下載exe檔案,一鍵安裝。

第二種:

這種安裝方式屬於原始碼安裝。

下載原始碼之後,需要設定環境變數。解壓下載之後的檔案路徑為:D:\go。

新增GOROOT,值為D:\go。同時需要在Path的值加上%GOROOT%\bin。

檢測是否已經安裝成功:

1、開啟cmd,輸入echo %PATH% 看環境變數是否已經加上。沒有的話需要重啟系統。

2、輸入 go version。看是否有資訊輸出。

無論哪一種方式,都需要新增GOPATH。

GOPATH是go命令依賴的一個重要環境變數。它與工作目錄掛鉤。坦白講就是你的工作空間。當有多個工作空間時,直接新增,用分號隔開。GOPATH工作目錄約定有三個子目錄:

-src 存放原始碼(比如:.go 等等)

-pkg 存放編譯後生成的檔案(比如:.a)

-bin 存放編譯後生成的可執行環境

以後自己新建應用或者新增第三方庫、程式碼包的時候,都存放在src下。

3、mysql。

mysql安裝也有兩種方式。

第一種:直接下載.mis檔案,一鍵安裝。

第二種:.zip包安裝。

(1)下載原始碼之後,解壓後,需要更改環境變數。往Path新增:D:\mysql5.7\bin(解壓後文件的路徑);

(2)修改配置檔案 my-default.ini.

#basedir = => basedir =D:\mysql5.7
#datadir = => datadir =D:\mysql5.7\data

(3)開啟cmd,輸入:mysqld -install;

(4)net start mysql;

(5)mysql -u root -p。輸完之後會提示輸入密碼,密碼為空,直接按回車;

(6)use mysql => update user set password=password('123456') where user ='root';(修改root的密碼)

(7)重啟mysql。net stop mysql => net start mysql;

4、安裝mysql驅動

(1)下載完原始碼之後,將原始碼拷貝到GOPATH的工作目錄src下;

(2)開啟cmd,cd至放驅動原始碼的地方;

(3)go install;開啟GOPATH目錄pkg,可以看到生成的.a檔案,也就是mysql驅動檔案。

(4)寫程式碼測試是否可以連線資料庫。程式碼如下:

package main
import (
	"database/sql"
	"fmt"
	_ "reptiles/src/mysql-driver"//生成驅動檔案的目錄名字
)
type User struct {
	id                 int
	username, password string
}
var sqldata map[interface{}]interface{}
func main() {
	var u User
	db, err := sql.Open("mysql", "root:[email protected](127.0.0.1:3306)/splider?charset=utf8")
	check(err)
	//插入資料
	stmt, err := db.Prepare("INSERT t_test SET s_username=?,s_pwd=?")
	check(err)
	res, err := stmt.Exec("xiaowei", "xiaowei")
	check(err)
	id, err := res.LastInsertId()
	check(err)
	fmt.Println(id)
	//查詢資料
	rows, err := db.Query("SELECT * FROM t_test")
	check(err)
	fmt.Println(rows.Columns())
	userinfo := make(map[interface{}]interface{})
	for rows.Next() {
		err := rows.Scan(&u.id, &u.username, &u.password)
		check(err)
		userinfo[u.id] = u
	}
	fmt.Println(userinfo)
}
func check(err error) {
	if err != nil {
		fmt.Println(err)
	}
}


相關推薦

golang 爬蟲實現

一、環境準備 1、編譯器,intellij idea。 下載完,直接安裝。安裝之後的編輯器不支援golang。需要新增支援golang的外掛,新增外掛有兩種方法。 第一種: (1)點選file->setttings->plugins->Browse Re

Golang Map實現

本文學習 Golang 的 Map 資料結構,以及map buckets 的資料組織結構。 # hash 表是什麼 從大學的課本里面,我們學到:hash 表其實就是將key 通過hash演算法對映到陣列的某個位置,然後把對應的val存放起來。 如果出現了hash衝突(也就是說,不同的key被對映到了相同

python一行程式碼實現百度翻譯和有道翻譯結果獲取-----py學習爬蟲歷程

更新(18-6-2):利用requests庫只需一行程式碼就可以獲取結果,程式碼在最後前言:本文參考於https://blog.csdn.net/c406495762/article/details/59095864一.本節主要用到的知識1-1:urllib.request.

golang 的 map 實現

概述 雜湊表是工程中常用到的資料型別,能提供快速的檢索和更新。複雜度一般為 O(1) 本篇博文分 兩部分寫,第一部分是原始碼學習,第二部分是一些內部實現,以及覺著有意思的一些地方,以及個人思考 理論 雜湊表需要解決的問題有兩個 位置索引 資料碰撞

golang自定義路由控制實現

    由於本人之前一直是Java Coder,在Java web開發中其實大家都很依賴框架,所以當在學習Golang的時候,自己便想著在Go開發中脫離框架,自己動手造框架來練習。通過學習借鑑Java的思想還有部分框架的原始碼,在golang上面進行實現,從而達到對Java和

爬蟲計劃--實現新浪微博自動登入和釋出內容

  看到網上很多人都對新浪微博進行爬蟲,正巧公司也有外接的小活,因此本人也加入到爬蟲的佇列,開始研究新浪微博。歷時半個月,一路上遇到諸多阻礙,還好沒有放棄,最終實現了對新浪微博的自動登入以及自動釋出內容!下面本人分多個章節把我的爬蟲經歷以及方法分享給大家,最後會附上程式碼(

異步線程池的實現-------具體實現方法

fun format 測試 路徑 線程池。 用戶體驗 deb tar clas 本篇是這個內容的第一篇,主要是寫:遇到的問題,和自己摸索實現的方法。後面還會有一篇是總結性地寫線程池的相關內容(偏理論的)。 一、背景介紹 朋友的項目開發到一定程度之後,又遇到

多種排序算法的思路和簡單代碼的實現

insert i++ 前後端 分享 size quicksort 執行 判斷 clas 就自己簡單的理解了一些排序算法(JAVA)思路和代碼分享給大家:歡迎大家進行交流。 直接插入排序,折半插入排序,冒泡排序,快速排序 1 public class Sort { 2

Dji Mobile SDK 基礎實現

n-1 app lba ger print ttl touch事件 釋放 bsp Dji Mobile SDK 基礎實現(一) 本文簡要介紹如何通過調用DJI Mobile SDK,實現獲取和釋放無人機的控制權限、模擬遙控器按鈕控制無人機的飛行、獲取無人機的回傳視頻、獲取無

Python爬蟲系列:從零開始,安裝環境

tar 公司 pip nal 網頁 解析 目標 http caption 在上一個系列,我們學會使用rabbitmq。本來接著是把公司的celery分享出來,但是定睛一看,celery4.0已經不再支持Windows。公司也逐步放棄了服役多年的celery項目。恰好,公司找

實現自定義查詢的數據庫設計及實現

bre 名稱 審批流程 work 數據庫名 需要 自定義查詢 perm 枚舉 需求 先說一下需求:實現用戶自定義的查詢,用戶可以自定義要查詢的列、自定義條件條件、自定義排序。除了查詢使用外,還可以使用於各個需要根據條件進行約束的業務,如權限; 本設計和實現,很大部分是通過數

Python爬蟲學習

code time response utf path urllib quest ext .com Python訪問網頁主要使用包urllib 打開網頁使用 urllib.request.urlopen(url, data=None, [timeout, ]*, cafi

視頻流GPU解碼的實現-基本概念

bsp 視頻流 class 概念 logs log 視頻 .com 認識 這段時間在實現Gpu的視頻流解碼,遇到了很多的問題。 要想實現ffempg的GPU化,必須要要對ffempg的解碼cou流程有基本的認識才能改造 我在http://www.cnblogs.com/

MVVM模式解析和在WPF中的實現

開發 特點 還需 如果 情況下 依次 顯示 尋找 這也 MVVM模式簡介 MVVM是Model、View、ViewModel的簡寫,這種模式的引入就是使用ViewModel來降低View和Model的耦合,說是降低View和Model的耦合。也可以說是是降低界面和邏輯的耦合

hadoop雲盤client的設計與實現

white 下一跳 -c 文件 。。 edi track ++ ava 近期在hadoop雲盤client項目。在做這個項目曾經對hadoop是一點都不了解呀,在網

基於樹莓派Raspberry Pi平臺的MQ-2煙霧報警系統以及結合Zabbix監控的實現

Raspberry Pi Zabbix和嵌入式系統的結合 Python3 樹莓派和MQ-2氣體檢測 一、前期準備 達成目標:   利用Rapberry Pi 驅動MQ-2煙霧報警模塊,對信息進行采集和提取,而後Zabbix監控系統來收集和處理信息采集到的信息。

基於樹莓派Raspberry Pi平臺的智能家居實現----繼電器模塊,DHT11模塊

Raspberry 繼電器模塊 DHT11溫濕度模塊 智能家居 前言:    ??其實做這個智能家居系統我還是因為學校的畢業設計,距離上篇文章發布已經過去了20多天了,之前想著只是做一個煙霧報警,然後通過Zabbix進行報警,但是通過這20多天的設計,我發現實現報警的功能其

Android項目實戰十六:QQ空間實現—— 展示說說中的評論內容並有相應點擊事件

con toast short demo append 集合 obj parent 自帶 原文:Android項目實戰(十六):QQ空間實現(一)—— 展示說說中的評論內容並有相應點擊事件大家都玩QQ空間客戶端,對於每一個說說,我們都可以評論,那麽,對於某一條評論:

KVM虛擬化的四種簡單網絡模型介紹及實現

_for only 應該 code eth tun x86_64 信息 dock KVM中的四種簡單網絡模型,分別如下:1、隔離模型:虛擬機之間組建網絡,該模式無法與宿主機通信,無法與其他網絡通信,相當於虛擬機只是連接到一臺交換機上。2、路由模型:相當於虛擬機連接到一臺路由

Algorand算法實現

span agreement 科學 anti 文章 技術 給定 節點 雲上 判斷節點是potential leader的條件: H(Sig(r, 1, Br-1)) <= 1 / size(PKr-k) size(PKr-k)為第r-k輪中網絡中參與區塊共識的