首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >python如何通过分布式爬虫爬取舆情数据

python如何通过分布式爬虫爬取舆情数据

原创
作者头像
小白学大数据
发布2023-04-06 16:24:54
发布2023-04-06 16:24:54
6420
举报
文章被收录于专栏:python进阶学习python进阶学习

作为爬虫,有时候会经历过需要爬取站点多吗,数据量大的网站,我们身边接触最频繁、同时也是最大的爬虫莫过于几大搜索引擎。今天我们来聊一个同样是站点多数据量的爬取方向,那就是舆情方向的爬虫。

一般的爬虫是在一台机器上进行爬取某个网站的数据,分布式爬虫是多台机器上同时爬取某个网站的数据。无论是舆情方向的爬虫还是电商方向的爬虫,要承担的爬取量都是非常大的。少则每日百万数据,多则每日数十亿数据,因此分布式爬虫对这种大型数据的爬取很适用。

但是这些网站可不会轻易让你爬取站点上面的内容,它们往往会从网络协议、浏览器特征、编程语言差异、人机差异等方面给爬虫工程师设置障碍,常见的有滑块验证码、拼图验证码、封 IP、检查 COOKIE、要求登录、设定复杂的加密逻辑、混淆前端代码等。不过水来土掩、兵来将挡!爬虫工程师与目标网站的工程师你来我往的过招就像兵家尔虞我诈一般精彩,就如最常见的封IP,做为爬虫工程师来说,一份优质爬虫代理就简单的解决了这个障碍,但是这种大型的网站和数据建议使用产品质量好,技术支持到位,售后服务到位的代理商。这里简单分享下代理IP在分布式爬虫中的实现过程:

代码语言:javascript
复制
#! -*- encoding:utf-8 -*-

    import requests
    import random

    # 要访问的目标页面
    targetUrl = "http://httpbin.org/ip"

    # 要访问的目标HTTPS页面
    # targetUrl = "https://httpbin.org/ip"

    # 代理服务器(产品官网 www.16yun.cn)
    proxyHost = "t.16yun.cn"
    proxyPort = "31111"

    # 代理验证信息
    proxyUser = "username"
    proxyPass = "password"

    proxyMeta = "http://%(user)s:%(pass)s@%(host)s:%(port)s" % {
        "host" : proxyHost,
        "port" : proxyPort,
        "user" : proxyUser,
        "pass" : proxyPass,
    }

    # 设置 http和https访问都是用HTTP代理
    proxies = {
        "http"  : proxyMeta,
        "https" : proxyMeta,
    }


    #  设置IP切换头
    tunnel = random.randint(1,10000)
    headers = {"Proxy-Tunnel": str(tunnel)}



    resp = requests.get(targetUrl, proxies=proxies, headers=headers)

    print resp.status_code
    print resp.text

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档