基于golang的爬虫,爬取QQ邮箱号、链接、手机号、身份证号


爬虫基础方案,基本的接口封装和使用,并为使用并发的处理


代码篇


package mainimport (
"fmt"
"io/ioutil"
"log"
"net/http"
"regexp")var (
// w代表大小写字母+数字+下划线
reEmail = `\w+@\w+\.\w+`
// s?有或者没有s
// +代表出1次或多次
//\s\S各种字符
// +?代表贪婪模式
reLinke  = `href="(https?://[\s\S]+?)"`
rePhone  = `1[3456789]\d\s?\d{4}\s?\d{4}`
reIdcard = `[123456789]\d{5}((19\d{2})|(20[01]\d))((0[1-9])|(1[012]))((0[1-9])|([12]\d)|(3[01]))\d{3}[\dXx]`
reImg    = `https?://[^"]+?(\.((jpg)|(png)|(jpeg)|(gif)|(bmp)))`)//抽取的爬邮箱func GetEmail2(url string)  {
pageStr := GetPageStr(url)
re := regexp.MustCompile(reEmail)
results := re.FindAllStringSubmatch(pageStr,-1)
for _,result := range results {
fmt.Println(result)
}}// 爬链接func GetLink(url string)  {
pageStr := GetPageStr(url)
re := regexp.MustCompile(reLinke)
results := re.FindAllStringSubmatch(pageStr,-1)
for _,result := range results {
fmt.Println(result[1])
}}//爬手机号func GetPhone(url string)  {
pageStr := GetPageStr(url)
re := regexp.MustCompile(rePhone)
results := re.FindAllStringSubmatch(pageStr,-1)
for _,result := range results {
fmt.Println(result)
}}//爬身份证号func GetIdCard(url string)  {
pageStr := GetPageStr(url)
re := regexp.MustCompile(reIdcard)
results := re.FindAllStringSubmatch(pageStr, -1)
for _, result := range results {
fmt.Println(result)
}}// 抽取根据url获取内容func GetPageStr(url string) (pageStr string)  {
resp,_ := http.Get(url)
//HandleError(err,"http.Get url")
defer resp.Body.Close()
if resp.StatusCode != 200 {
log.Fatalf("status code error: %d %s", resp.StatusCode, resp.Status)
}
// 2.读取页面内容
pageBytes,_ := ioutil.ReadAll(resp.Body)
// 字节转字符串
pageStr = string(pageBytes)
return pageStr}func main()  {
// 抽取的爬邮箱
GetEmail2("https://tieba.baidu.com/p/6051076813?red_tag=1573533731")
// 爬链接
GetLink("http://www.baidu.com/s?wd=%E8%B4%B4%E5%90%A7%20%E7%95%99%E4%B8%8B%E9%82%AE%E7%AE%B1&rsv_spt=1&rsv_iqid=0x98ace53400003985&issp=1&f=8&rsv_bp=1&rsv_idx=2&ie=utf-8&tn=baiduhome_pg&rsv_enter=1&rsv_dl=ib&rsv_sug2=0&inputT=5197&rsv_sug4=6345")
// 爬手机号
GetPhone("https://www.zhaohaowang.com/")
// 爬身份证号
GetIdCard("https://henan.qq.com/a/20171107/069413.htm")}

结果:


[1184822807@qq.com]
[1184822807@qq.com]
[598088118@qq.com]
[598088118@qq.com]
[835428013@qq.com]
------

----
[16050271557]
----
[410222198706134038 1987 1987  06 06  13  13 ]
Process finished with exit code 0
(0)

相关推荐

  • Go 是面向对象编程风格的编程语言吗?

    Go编程时光 零基础 Go入门教程连载中... 43篇原创内容 公众号 01 介绍 Golang 语言是面向对象语言吗?Golang 语言官方的回答是 Yes and no.什么意思呢?Golang ...

  • 基于golang的小爬虫,爬取QQ邮箱号和QQ号

    这个只是一个简单的版本只是获取QQ邮箱并且没有进行封装操作,另外爬出来的数据也没有进行去重操作 package mainimport ( "fmt" "io/ioutil ...

  • 基于golang分布式爬虫系统的架构体系v1.0

    基于golang分布式爬虫系统的架构体系v1.0 一.什么是分布式系统 分布式系统是一个硬件或软件组件分布在不同的网络计算机上,彼此之间仅仅通过消息传递进行通信和协调的系统.简单来说就是一群独立计算机 ...

  • 想要找美女的清晰图片吗!教你使用python爬虫爬取网站中高质量的图片!

    想要找美女的清晰图片吗!教你使用python爬虫爬取网站中高质量的图片!

  • 用 Python 爬取 QQ 空间说说和相册

    来源:Python 技术「ID: pythonall」 QQ 空间在 2005 年被腾讯开发,已经经历了 15 个年头,在还没有微信的年代,看网友发表的心情.心事.照片大多都在 QQ 空间的里.它承载 ...

  • 爬虫爬取代理ip

    import urllib.request from bs4 import BeautifulSoup import re import time import random # ---------- ...

  • python爬虫爬取网页表格数据

    https://download.csdn.net/download/weixin_38581447/12870156?utm_medium=distribute.pc_relevant_downlo ...

  • 手把手带你爬虫 | 爬取语录大全

    目标 爬取语录,批量下载到本地. 项目准备 软件:Pycharm 第三方库:requests,fake_useragent,re,lxml 网站地址:http://www.yuluju.com 网站分 ...

  • Python爬虫爬取数据的步骤

    爬虫: 网络爬虫是捜索引擎抓取系统(Baidu.Google等)的重要组成部分.主要目的是将互联网上的网页下载到本地,形成一个互联网内容的镜像备份. 步骤: 第一步:获取网页链接 1.观察需要爬取的多 ...

  • 爬取QQ音乐全部歌曲

    来源:blog.csdn.net/qq_45414559 Tip:本文仅供学习与参考,且勿用作不法用途~ 前景介绍 最近小伙伴们听歌的兴趣大涨,网抑云综合症已经遍布各地. 咱们再来抬高一波QQ音乐的热 ...