找回密码
 立即注册
首页 编程领域 编程板块 爬虫总体上分为四个主要步骤

Python 爬虫总体上分为四个主要步骤

2023-2-22 11:12:23 评论(0)



爬虫总体上分为四个主要步骤:
1、明确目标,需要做的从哪个途径或者哪个范围内网页搜索。
2、爬,将获取到的网站内容全部爬下来。
3、取,对数据分析去掉没用的数据。
4、处理数据,按照我们想要的方式存储和使用。
某吧小爬虫


代码如下:
  1. package main

  2. import (
  3.   "fmt"
  4.   "net/http"
  5.   "os"
  6.   "strconv"
  7. )

  8. //爬取网页内容
  9. func HttpGet(url string) (result string, err error) {
  10.   resp, err1 := http.Get(url)
  11.   if err1 != nil {
  12.   err = err1
  13.   return
  14.   }
  15.   defer resp.Body.Close()
  16.   //读取网页body的内容
  17.   buf := make([]byte, 1204*4)
  18.   for {
  19.   n, err := resp.Body.Read(buf)
  20.   if n == 0 { //读取结束,或者出问题
  21.     fmt.Println("resp.Body.Read err = ", err)
  22.     break
  23.   }
  24.   result += string(buf[:n])
  25.   }
  26.   return
  27. }

  28. func DoWork(start, end int) {
  29.   fmt.Printf("正在爬取 %d 到 %d 的页面\n", start, end)

  30.   //1,明确目标(要知道你准备在哪个范围或者网站去搜索)
  31.   //https://tieba.baidu.com/f?kw=%E7%BB%9D%E5%9C%B0%E6%B1%82%E7%94%9F&ie=utf-8&pn=0 //下一页+50
  32.   for i := start; i <= end; i++ {
  33.   url := "https://tieba.baidu.com/f?kw=%E7%BB%9D%E5%9C%B0%E6%B1%82%E7%94%9F&ie=utf-8&pn=" + strconv.Itoa((i-1)*50)
  34.   fmt.Println("url = ", url)

  35.   //2,爬取内容(将网站内容爬取下来)
  36.   result, err := HttpGet(url)
  37.   if err != nil {
  38.     fmt.Println("HttpGet err = ", err)
  39.     continue
  40.   }
  41.   //把内容写入到文件
  42.   fileName := strconv.Itoa(i) + ".html"
  43.   f, err1 := os.Create(fileName)
  44.   if err1 != nil {
  45.     fmt.Println("os.Create err1 = ", err1)
  46.     continue
  47.   }
  48.   f.WriteString(result) //写内容
  49.   f.Close()             //关闭文件

  50.   }

  51. }

  52. func main() {
  53.   var start, end int
  54.   fmt.Printf("请输入起始页(>= 1):")
  55.   fmt.Scan(&start)
  56.   fmt.Printf("请输入终止页(>= 起始页):")
  57.   fmt.Scan(&end)

  58.   DoWork(start, end)

  59. }
复制代码

运行之后,将会把爬取的内容保存在文件中。




本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x

使用道具 举报

特别声明:以上内容(图片及文字)均为互联网收集或者用户上传发布,本站仅提供信息存储服务!如有侵权或有涉及法律问题请联系我们(3513994353@qq.com)。
您需要登录后才可以回帖 登录 | 立即注册
楼主
我是好人

关注0

粉丝0

帖子30

最新动态