Go语言爬取网站磁力链接
2018-07-20 来源:open-open
package main import ( "bufio" "fmt" "io" "io/ioutil" "net/http" "os" "regexp" "strconv" "strings" "time" ) func main() { fmt.Print("输入要查询的字符:") reader := bufio.NewReader(os.Stdin) input, _ := reader.ReadBytes('\n') x := string(input[0 : len(input)-2]) const url, page string = "http://www.btcherry.com/search?keyword=", "&p=" var Find string FileResult, _ := os.OpenFile("re.txt", os.O_RDWR|os.O_CREATE|os.O_TRUNC, 777) defer func() { time.Sleep(1e9 * 2) FileResult.Sync() FileResult.Close() }() for i := 1; i < 101; i++ { Find = url + x + page + strconv.Itoa(i) h := strings.Repeat("#", i/2) + strings.Repeat(" ", 50-i/2) fmt.Printf("\r%02d%%[%s]", i, h) time.Sleep(1e6 * 5) go Resolve(Find, FileResult) } } func Resolve(Find string, FileResult io.Writer) { Re0, _ := regexp.Compile("<h5.*h5>") Re1, _ := regexp.Compile(`^<h5 class="h" name="rsrc"`) Re2, _ := regexp.Compile("<span class='highlight'>") Re3, _ := regexp.Compile("</span") Re4, _ := regexp.Compile("</h5>") Re5, _ := regexp.Compile(">") Re6, _ := regexp.Compile(`data-hash="`) Resp, err := http.Get(Find) if err != nil { fmt.Println(err) } Buf, _ := ioutil.ReadAll(Resp.Body) buf := Re0.FindAll(Buf, 1000) for _, line := range buf { line = Re1.ReplaceAll(line, []byte("")) line = Re2.ReplaceAll(line, []byte("")) line = Re3.ReplaceAll(line, []byte("")) line = Re4.ReplaceAll(line, []byte("")) line = Re5.ReplaceAll(line, []byte("")) line = Re6.ReplaceAll(line, []byte("magnet:?xt=urn:btih:")) FileResult.Write(line) FileResult.Write([]byte("\n")) } }
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点!
本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。
上一篇:Android语音录制的代码
下一篇:Android获取本地图片并显示
最新资讯
热门推荐