美文网首页golang从零起步
爬虫自动转码,获取城市列表:城市名称+URL

爬虫自动转码,获取城市列表:城市名称+URL

作者: 次序 | 来源:发表于2018-08-24 15:21 被阅读0次

//下载插件工具
go get -v github.com/gpmgo/gopm

//自动导入包插件
gopm get -g -v golang.org/x/tools/cmd/goimports

//转码插件
gopm get -g -v golang.org/x/text

//自动检测网页编码
gopm get -g -v golang.org/x/net/html

package main

import (
    "net/http"
    "io/ioutil"
    "fmt"
    "golang.org/x/text/transform"
    "io"
    "golang.org/x/text/encoding"
    "golang.org/x/net/html/charset"
    "bufio"
    "regexp"
)

func main() {
    resp, err := http.Get("http://www.zhenai.com/zhenghun")
    if err != nil {
        panic(err)
    }
    defer resp.Body.Close()
    if resp.StatusCode != http.StatusOK {
        fmt.Println("Error:status code", resp.StatusCode)
        return
    }
    e := determinEncoding(resp.Body)
    utf8Reader := transform.NewReader(resp.Body, e.NewDecoder())
    all, err := ioutil.ReadAll(utf8Reader)
    if err != nil {
        panic(err)
    }
    printCityList(all)

}
func printCityList(contents []byte) {
    re := regexp.MustCompile(`<a href="(http://www.zhenai.com/zhenghun/[0-0a-z]+)"[^>]*>([^<]+)</a>`)
    matches := re.FindAllSubmatch(contents, -1)
    for _, m := range matches {
        fmt.Printf("City: %s, URL: %s\n", m[2], m[1])
    }
    fmt.Printf("Matches found:%d\n", len(matches))
}

func determinEncoding(r io.Reader) encoding.Encoding {
    bytes, err := bufio.NewReader(r).Peek(1024)
    if err != nil {
        panic(err)
    }
    e, _, _ := charset.DetermineEncoding(bytes, "")
    return e
}

相关文章

  • 爬虫自动转码,获取城市列表:城市名称+URL

    //下载插件工具go get -v github.com/gpmgo/gopm //自动导入包插件gopm get...

  • 获取城市列表

    API: 获取城市列表 URL: /get_city_list_by_province/ 请求方式: POST ...

  • 获取城市列表

    API: 获取城市列表 URL: /get_city_list_by_province_id/ 请求方式: PO...

  • 【Python爬虫】手机号网段爬虫

    整体爬虫逻辑: 1.获取省份和城市的定位,然后定位出各个城市和相对应的url2.获取到 130 xx号段 (共31...

  • Flask-API接口文档

    目录 获取城市接口 注册接口 1. 获取城市接口 接口功能 获取所有城市数据 URL http://127.0.0...

  • 提取城市和url

    我们介绍完正则表达式以后,再次进入到我们的爬虫项目。我们现在是获取了城市列表的网页源码我们来写一个解析城市列表的函...

  • React项目实战四

    选择城市列表 选择城市列表渲染后的界面: 1,获取并处理城市列表数据 接口返回的数据结构: 渲染城市列表的数据格式...

  • 爬虫基础知识点

    什么是爬虫 就是一段自动获取互联网信息的程序。 爬虫基本的运作流程 首先确定目标网站,分析目标url 根据url发...

  • 迭代接口文档

    1 首页默认界面 2 获取兼职类型列表 3 获取省份列表 4 获取城市列表 5 ...

  • 腾讯地图 -> 地址定位 CityService

    地址定位 地址定位 CityService 根据城市名称、经纬度、IP地址(支持自动获取用户IP)、电话区号获取城...

网友评论

    本文标题:爬虫自动转码,获取城市列表:城市名称+URL

    本文链接:https://www.haomeiwen.com/subject/emabiftx.html