Java教程

目标网站反爬基础知识

本文主要是介绍目标网站反爬基础知识,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

今天是一篇关于目标网站的反爬机制和破解方法大分享首选我们需要知道什么是爬虫和反爬虫以及?
爬虫:使用任何技术手段,批量获取网站数据的一种方式。反爬虫:目标网站使用技术手段,阻止别人批量获取自己网站信息的一种方式。
反爬虫的一些手段
(1) Headers and referer 反爬机制:headers进行反爬是最常见的反爬虫策略。还有一些网站会对 Referer (上级链接)进行检测,这些需要我们在爬虫过程中去分析,
(2)p限制
目标网站限制ip访问频率和次数进行反爬,这是最基本的反爬策略也是最容易解决的。
解决措施:可以自己搭建ip池,但是成本太大不推荐,最简单的是直接购买代理ip服务,像亿牛云、、、、等专门提供代理ip的。
(3) UA限制
UA是用户访问网站时候的浏览器标识.
解决措施,构建自己的UA池,每次python做requests访问时随机挂上UA标识,更好的模拟浏览器行为.
以上都是一些最基本的反爬策略,一般的网站只要做好了这三方面的策略都是没有问题的,比较大型的网站就需要做更复杂的策略。
分享一段简直的爬虫程序添加代理的示例,有这方面需要的小伙伴可以尝试看下。

Plain Text

复制代码

#! -*- 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
这篇关于目标网站反爬基础知识的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!