前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >应对反爬之前先懂什么是网站反爬

应对反爬之前先懂什么是网站反爬

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

爬虫的出现是大数据时代的必然产物,是各行各业数据分析必不可少的存在。爬虫就像一个虫子密密麻麻地爬行到每一个角落获取数据,虫子或许无害,但总是不受欢迎的。

因为爬虫技术造成的大量IP访问网站侵占带宽资源、以及用户隐私和知识产权等危害,很多互联网企业都会花大力气进行“反爬虫”。比如你的爬虫会遭遇被网站封IP、比如各种奇怪的验证码、userAgent访问限制、各种动态加载、post请求参数动态变化、禁止页面调试等都有可能出现这些都是常见的反爬方式。但是上有政策下有对策,爬虫也有相对应的反爬虫措施,比如通过使用大量优质爬虫代理ip来解决ip被限制问题,通过登陆破解各种验证码,添加随机userAgent突破访问限制等等。

应对反爬虫措施的主要思路就是尽可能的去模拟浏览器,浏览器在如何操作,代码中就如何去实现,比如请求头User-agent,这是个很常见的,不做过多阐述,如下,这是我访问某某网站的,然后图上标注的就是user-agent,在这里的User-Agent可以使用多个随机的,意思就是假如你请求20次,你可以自己构造多个不同的User-Agent随机使用一次不重样的,防止过于频繁,这也是常见的方式,具体使用如下:

代码语言:javascript
复制
import requests
headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.108 Safari/537.36'}

res = requests.get(url='https://www.baidu.com/', headers=headers)

再比如通过限制ip的操作,如果目标网站限制了ip的访问频率,这时就需要使用代理ip去不停的更换,ip的选择也需要看业务网站对ip的要求是否高,像一些大型电商类的网站,不仅对ip质量要求严,对ip池的需求也大,这种情况一般需要通过购物代理服务才能满足,代理商有大量高质量的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 条评论
热度
最新
推荐阅读
相关产品与服务
验证码
腾讯云新一代行为验证码(Captcha),基于十道安全栅栏, 为网页、App、小程序开发者打造立体、全面的人机验证。最大程度保护注册登录、活动秒杀、点赞发帖、数据保护等各大场景下业务安全的同时,提供更精细化的用户体验。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档