• python爬取网站的一些技巧总结


    学习python也有一段时间了,今天整理了一份爬取网站数据的基本步骤分享给大家,对于很多爬虫高手来说可能没有什么意义,但是对新学爬虫的小伙伴来说可以参考下。爬取一个网站的数据整体是比较简单的,难度大小跟这个网站有关。以下就是一些小编整理的步骤:
    1、设定爬取目标,
    目标网站:微博 https://weibo.com/
    目标数据每天更新的热搜关键词的链接、标题、标签。
    2、 分析目标网站
    爬取页面:https://s.weibo.com/weibo?q=%E4%BF%9D%E7%A0%94&topic_ad=
    待爬取数据:网页下的超链接的标题和链接,标签列表
    目标网站反爬:网站反爬的方式有很多,都有应对策略,比如遇到网站限制IP访问次数时,只需要加上代理IP就可以轻松解决。代理IP的选择有很多,比如这里我们给大家示例代理使用方式的亿牛云代理。代理如何在程序里面添加,示例代码如下:
    Plain Text
    复制代码
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    // 要访问的目标页面
    string targetUrl = “http://httpbin.org/ip”;

    // 代理服务器(产品官网 www.16yun.cn)
    string proxyHost = “http://t.16yun.cn”;
    string proxyPort = “31111”;

    // 代理验证信息
    string proxyUser = “username”;
    string proxyPass = “password”;

    // 设置代理服务器
    WebProxy proxy = new WebProxy(string.Format(“{0}:{1}”, proxyHost, proxyPort), true);

    ServicePointManager.Expect100Continue = false;

    var request = WebRequest.Create(targetUrl) as HttpWebRequest;

    request.AllowAutoRedirect = true;
    request.KeepAlive = true;
    request.Method = “GET”;
    request.Proxy = proxy;

    //request.Proxy.Credentials = CredentialCache.DefaultCredentials;

    request.Proxy.Credentials = new System.Net.NetworkCredential(proxyUser, proxyPass);

    // 设置Proxy Tunnel
    // Random ran=new Random();
    // int tunnel =ran.Next(1,10000);
    // request.Headers.Add(“Proxy-Tunnel”, String.valueOf(tunnel));

    //request.Timeout = 20000;
    //request.ServicePoint.ConnectionLimit = 512;
    //request.UserAgent = “Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.82 Safari/537.36”;
    //request.Headers.Add(“Cache-Control”, “max-age=0”);
    //request.Headers.Add(“DNT”, “1”);

    //String encoded = System.Convert.ToBase64String(System.Text.Encoding.GetEncoding(“ISO-8859-1”).GetBytes(proxyUser + “:” + proxyPass));
    //request.Headers.Add(“Proxy-Authorization”, "Basic " + encoded);

    using (var response = request.GetResponse() as HttpWebResponse)
    using (var sr = new StreamReader(response.GetResponseStream(), Encoding.UTF8))
    {
    string htmlStr = sr.ReadToEnd();
    }
    3、实现HTML解析,得到目标数据。获取数据需要进行清洗整理才能得到一份干净有效的数据。
    4、将结果数据存储
    这只是其的一些必要步骤,细分还有很多的步骤需要学习,但是我们只要掌握了整体框架,把这些都学透了那么爬虫就没有那么难了。

  • 相关阅读:
    抖音视频笔记
    【强化学习高阶技巧】Experience Replay经验回报
    对话式人工智能的数据采集方案
    treectrl类封装 2023/8/13 下午4:07:35
    Day02-Java报表以及表格
    软件测试怎么学?App自动化、Web自动化、性能测试怎么学?一文总结
    487. 最大连续1的个数 II ●●
    在winform中如何嵌入第三方软件窗体✨
    关于cmake --build .的理解
    kafka安装和使用的入门教程
  • 原文地址:https://blog.csdn.net/Z_suger7/article/details/127092313