精华内容
下载资源
问答
  • selenium被反爬怎么办

    千次阅读 2019-09-28 09:07:40
    在最近的业务需求中发现淘宝,美团吗,京东各大网站已经对selenium进行了反爬; 推测,服务器端因该是判断一些特殊的字段和方法来识别爬虫,毕竟selenium下的chromedriver 与真实的chrome所在的环境和配置等是有差异...

    在最近的业务需求中发现淘宝,美团,京东各大网站已经对selenium进行了反爬;
    推测,服务器端因该是判断一些特殊的字段和方法来识别爬虫,毕竟selenium下的chromedriver 与真实的chrome所在的环境和配置等是有差异的。
    为了完成项目需求,我尝试了一些简单的方法;

    方法一:

    发送请求的时候携带cookie,采用requests的Session状态保持,事实证明这种方法简单有效,可以成功访问。但是这是用于采集的数据量比较少的情况下。如果你想要快速采集,那就使用aiohttp吧!

    方法二:

    如果js可以破解的话,那就破解它了!
    实战案例:

    方法三:

    mitmproxy请求拦截

    1. 给本机设置代理ip
    2. 启动mitmproxy
    3. 打开chromewebdriver,查看各个JS文件,是否存在driver字样,找到最终的JS文件
    4. 干扰脚本
    5. 退出mitmproxy

    方法四:

    使用pyppeteer无头浏览器的一种。实战案列pyppeteer实战案例

    展开全文
  • 反爬比较严的网站会识别selenium driver中的js属性,导致页面加载识别,可以通过本地手动驱动浏览器解决。 启动方式:在windows或者mac下找到浏览器执行文件,然后运行:/Applications/Google\ Chrome.app/Contents...
    反爬比较严的网站会识别selenium driver中的js属性,导致页面加载识别,可以通过本地手动驱动浏览器解决。
    
    启动方式:在windows或者mac下找到浏览器执行文件,然后运行:/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --remote-debugging-port=9222
    
    #手动启动浏览器
    """
    1.手动启动chrome。启动之前确保所有关闭
    
    :return:
    """
    options =Options()
    options.add_argument("--disable-extensions")
    options.add_experimental_option("debuggerAddress","127.0.0.1:9222")
    
    browser = webdriver.Chrome(executable_path='/Users/wangyun/Documents/chromedriver',chrome_options=options)
    url = 'https://www.zhihu.com/signin'
    browser.get(url= url)
    x = browser.find_elements_by_xpath('.//div[@class="SignFlow-tabs"]/div[@class="SignFlow-tab SignFlow-tab--active"]')[0].location
    print(x)
    time.sleep(5)
    y =browser.find_element_by_name("username")   #.send_keys("15110159")
    y.send_keys('1222')
    print(y)
    # time.sleep(5)
    browser.find_element_by_class_name('password').send_keys('Wh91523哈哈哈')
    展开全文
  • 1.前言 本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何...但是在爬取过程中遇到了反爬机制,因此这里给大家分享一下如何解决爬虫的反爬问题?(以豆瓣网站为例) 2.问题分析 起初代码 headers .

    1.前言

    本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理。

    PS:如有需要Python学习资料的小伙伴可以点击下方链接自行获取

    Python免费学习资料、代码以及交流解答点击即可加入


    想着爬取『豆瓣』的用户和电影数据进行『挖掘』,分析用户和电影之间以及各自之间的关系,数据量起码是万级别的。

    但是在爬取过程中遇到了反爬机制,因此这里给大家分享一下如何解决爬虫的反爬问题?(以豆瓣网站为例)

     

    2.问题分析

    起初代码

    
    headers = {
                'Host':'movie.douban.com',
                'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.121 Safari/537.36',
                'cookie':'bid=uVCOdCZRTrM; douban-fav-remind=1; __utmz=30149280.1603808051.2.2.utmcsr=google|utmccn=(organic)|utmcmd=organic|utmctr=(not%20provided); __gads=ID=7ca757265e2366c5-22ded2176ac40059:T=1603808052:RT=1603808052:S=ALNI_MYZsGZJ8XXb1oU4zxzpMzGdK61LFA; _pk_ses.100001.4cf6=*; __utma=30149280.1867171825.1603588354.1603808051.1612839506.3; __utmc=30149280; __utmb=223695111.0.10.1612839506; __utma=223695111.788421403.1612839506.1612839506.1612839506.1; __utmz=223695111.1612839506.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none); __utmc=223695111; ap_v=0,6.0; __utmt=1; dbcl2="165593539:LvLaPIrgug0"; ck=ZbYm; push_noty_num=0; push_doumail_num=0; __utmv=30149280.16559; __utmb=30149280.6.10.1612839506; _pk_id.100001.4cf6=e2e8bde436a03ad7.1612839506.1.1612842801.1612839506.',
                'accept': 'image/avif,image/webp,image/apng,image/*,*/*;q=0.8',
                'accept-encoding': 'gzip, deflate, br',
                'accept-language': 'zh-CN,zh;q=0.9',
                'upgrade-insecure-requests': '1',
                #'referer':'',
            } 
    url = "https://movie.douban.com/subject/24733428/reviews?start=0"
    r = requests.get(url, headers=headers)
    

    上面是基本的爬虫代码,在requests里面设置headers(包含cookie),如果没有反爬机制的话,可以正常爬取数据。

    但是『豆瓣』网站有反爬机制!!

     

    爬取就10几页之后,就出现这个验证!!

    更关键的是:验证之后接着爬取,几秒后又出现这个,即使设置几秒爬取一次也无法解决!

    3.解决方案

    方案猜想

    根据多年的爬虫经验,首先想到的是设置IP代理,这样就相当于不同用户在爬取网站,因此就通过ip代理去尝试,看看能否解决『豆瓣』的反爬机制。

    获取大量IP代理

    如果单纯设置一个IP代理,那样跟咱们之前在自己电脑上爬取没有什么区别,因此需要大量的IP代理,通过随机抽取的方式去使用IP代理,这样可以避免同一IP去爬取被『豆瓣』反爬机制禁爬。

    IP代理正常来说,很贵,作为白嫖党,这里使用免费ip代理(亲测可用)

    白嫖过程

    
    https://h.shenlongip.com/index/index.html
    

    白嫖的IP代理平台是:神龙Http,(这里不是广告,只是觉得可以白嫖,跟大家分享)

     

     

    注册之后,可以免费获取1000个IP代理(详细过程就不介绍了,重点如何使用IP代理解决反爬问题~)

     


    这样我们就可以将提取的IP代理放到文本文件中。

    设置IP代理

    读取IP代理

    
    iplist=[]
    with open("ip代理.txt") as f:
        iplist = f.readlines()
    

    刚刚已经将ip全部保存到文本文件中,现在读取出来放到iplist中

    随机抽取IP代理

    
    #获取ip代理
    def getip():
        proxy= iplist[random.randint(0,len(iplist)-1)]
        proxy = proxy.replace("\n","")
        proxies={
            'http':'http://'+str(proxy),
            #'https':'https://'+str(proxy),
        }
        return proxies
    

    通过random函数,可以在iplist 代理集合中,随机抽取IP代理,并封装成proxies格式(requests的ip代理规定格式)

    注解:这里https被注释掉了,因为我这里的ip代理是http,所以有https的话则报错!

    IP代理代码

    
    headers = {
                'Host':'movie.douban.com',
                'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.121 Safari/537.36',
                'cookie':'bid=uVCOdCZRTrM; douban-fav-remind=1; __utmz=30149280.1603808051.2.2.utmcsr=google|utmccn=(organic)|utmcmd=organic|utmctr=(not%20provided); __gads=ID=7ca757265e2366c5-22ded2176ac40059:T=1603808052:RT=1603808052:S=ALNI_MYZsGZJ8XXb1oU4zxzpMzGdK61LFA; _pk_ses.100001.4cf6=*; __utma=30149280.1867171825.1603588354.1603808051.1612839506.3; __utmc=30149280; __utmb=223695111.0.10.1612839506; __utma=223695111.788421403.1612839506.1612839506.1612839506.1; __utmz=223695111.1612839506.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none); __utmc=223695111; ap_v=0,6.0; __utmt=1; dbcl2="165593539:LvLaPIrgug0"; ck=ZbYm; push_noty_num=0; push_doumail_num=0; __utmv=30149280.16559; __utmb=30149280.6.10.1612839506; _pk_id.100001.4cf6=e2e8bde436a03ad7.1612839506.1.1612842801.1612839506.',
                'accept': 'image/avif,image/webp,image/apng,image/*,*/*;q=0.8',
                'accept-encoding': 'gzip, deflate, br',
                'accept-language': 'zh-CN,zh;q=0.9',
                'upgrade-insecure-requests': '1',
                #'referer':'',
            }
    url = "https://movie.douban.com/subject/24733428/reviews?start=0"
    r = requests.get(url, proxies=getip(), headers=headers, verify=False)
    

    加了IP代理之后,爬取了几百页也没有遇到过验证问题。轻松爬取万级别的数据没问题。

     

     

    已经爬取了8677条数据,一直没有验证出现,程序还在继续运行~~~

    时间间隔

    如果还是遇到验证机制,可以添加时间间隔,在爬取每一页的时候,先让程序暂停几秒(自定义)

    
    time.sleep(random.randint(3,5))
    

    random.randint(3,5)是随机生成35之间的数字,因此程序在爬取一次后就随机暂停35秒。这样也是一个有效防止触发反爬机制。

    4.总结

    1.讲解了通过IP代理和时间间隔去解决反爬验证问题
    2.白嫖可用的IP代理
    3.爬取好的数据将会进一步分析和挖掘,本文就讲解如何解决爬虫的反爬问题(毕竟大家时间宝贵,都是碎片化阅读,一下子太多内容难易消化)。

    展开全文
  • 想开发网页爬虫,发现被反爬了?想对 App 抓包,发现数据被加密了?不要担心,使用 Airtest 开发 App 爬虫,只要人眼能看到,你就能抓到,最快只需要2分钟,兼容 Unity3D、Cocos2dx-*、Android 原生 App、iOS App、...

     

    全面超越Appium,使用Airtest超快速开发App爬虫

    想开发网页爬虫,发现被反爬了?想对 App 抓包,发现数据被加密了?不要担心,使用 Airtest 开发 App 爬虫,只要人眼能看到,你就能抓到,最快只需要2分钟,兼容 Unity3D、Cocos2dx-*、Android 原生 App、iOS App、Windows Mobile……。

    Airtest是网易开发的手机UI界面自动化测试工具,它原本的目的是通过所见即所得,截图点击等等功能,简化手机App图形界面测试代码编写工作。

    安装和使用

    安装Airtest

    从Airtest官网:airtest.netease.com下载Airtest,然后像安装普通软件一样安装即可。安装过程没有什么需要特别说明的地方。Airtest已经帮你打包好了开发需要的全部环境,所以安装完成Airtest以后就能够直接使用了。

    Airtest运行以后的界面如下图所示。

    连接手机

    以Android手机为例,由于Airtest会通过adb命令安装两个辅助App到手机上,再用adb命令通过控制这两个辅助App进而控制手机,因此首先需要确保手机的adb调试功能是打开的,并允许通过adb命令安装App到手机上。

    启动Airtest以后,把Android手机连接到电脑上,点击下图方框中的刷新 ADB

     

     此时在Airtest界面右上角应该能够看到手机的信息,如下图所示。

    点击connect按钮,此时可以在界面上看到手机的界面,并且当你手动操作手机屏幕时,Airtest中的手机画面实时更新。如下图所示。

    对于某些手机,例如vivo,在第一次使用Airtest时,请注意手机上将会弹出提示,询问你是否允许安装App,此时需要点击允许按钮。并且打开开发者模式,这里vivo开发者打开后图如下:

    打开美团

    先通过一个简单的例子,来看看如何快速上手Airtest,稍后再来详解。

    例如我现在想使用电脑控制手机,打开美团。

    此时,点击下图中方框框住的touch按钮:

    接下来演示完整的打开流程:

    这里,我把Airtest分成了A-F6个区域,他们的功能如下:

    • A区:常用操作功能区
    • B区:Python代码编写区
    • C区:运行日志区
    • D区:手机屏幕区
    • E区:App页面布局信息查看区
    • F区:工具栏

    A区是常用的基于图像识别的屏幕操作功能,例如:

    • touch: 点击屏幕元素
    • swipe: 滑动屏幕
    • exists: 判断屏幕元素是否存在
    • text: 在输入框中输入文字
    • snashot: 截图
    • ……

    一般来说,是点击A区里面的某一个功能,然后在D区屏幕上进行框选操作,B区就会自动生成相应的操作代码。

    B区用来显示和编写Python代码。在多数情况下,不需要手动写代码,因为代码会根据你在手机屏幕上面的操作自动生成。只有一些需要特别定制化的动作才需要修改代码。

    D区显示了手机屏幕,当你操作手机真机时,这个屏幕会实时刷新。你也可以直接在D区屏幕上使用鼠标操作手机,你的操作动作会被自动在真机上执行。

    F区是一些常用工具,从左到右,依次为:

    1. 新建项目
    2. 打开项目
    3. 保存项目
    4. 运行代码
    5. 停止代码
    6. 查看运行报告

    后续。。。。。

    转载于:https://www.cnblogs.com/542684416-qq/p/10916445.html

    展开全文
  • 写在前面 ...。。 ... 后来发现大概是知乎识别出...把我们给反爬了。 解决办法 解决办法就是——用webdirver接管我们自己打开的浏览器,然后再进行登录操作。 具体的接管方法,这篇文章已经说得非常清楚了:https://www.cn...
  • 大众点评svg反爬

    千次阅读 多人点赞 2020-11-07 17:16:21
    学爬虫有大半年,仅仅会一些基础的爬虫,对一些反爬有深度的反爬就over了,最近在学svg反爬与字体反爬,然后用大众点评练一下。当然会有代码跑起来效率不高的的地方以及错误,大家可以指点。 前言 大众点评是一款...
  • 购(bai)买(piao)IP 条条大路通罗马,自己的 IP 封了不能用,就得买别人的 IP 当然也是可以白嫖的,点击下方图片进入网站,注册登录之后,可以每天白嫖10个1-5分钟的ip,如果需要更多,就只能自己买了,看起来...
  • 常见的反爬手段和解决思路 学习目标 了解 服务器反爬的原因 了解 服务器常反什么样的爬虫 了解 反爬虫领域常见的一些概念 了解 反爬的三个方向 了解 常见基于身份识别进行反爬 了解 常见基于爬虫行为进行反爬 了解 ...
  • 反爬建议

    2019-05-28 16:11:24
    怎么办呢? 可以爬爬看,别人什么价格。于是他爬取了 A 和 C。 C 公司的后台检测到有人来查询价格…… 过了一段时间,三家公司的服务器分别报警,访问量过高 反爬的意义 1.降低服务器压力--因为有...
  • 每次更换代理IP仍然被反爬 客户问题 使用产品类型: 隧道代理动态版(每次请求更换IP)。 问题描述: 目标网站有反爬机制,两次搜索的间隔时间不得少于25秒。使用了我们的隧道代理后,还是会被检测出来,依旧只能25...
  • 当然有时间的情况下,可以去研究这些参数在哪个响应中返回,或者怎么构造,但是一般在工作中我们可能需求来了,不会有过多的时间去考虑这些反爬怎么处理,那么该怎么办? 下面就讲如何3分钟绕过其反爬,获取翻译...
  • 原本公司已经有了一套字体反爬的机制,但效果还是不很理想。花了一周的时间进行研究,最终在现有反爬基础之上,总结了本文要讲的方案。 说是终极方案,是有些吹牛了,大家都知道爬虫和反爬之家的道高一尺魔高一丈的...
  • 自定义字符反爬

    2018-08-16 17:11:04
    原本公司已经有了一套字体反爬的机制,但效果还是不很理想。花了一周的时间进行研究,最终在现有反爬基础之上,总结了本文要讲的方案。 说是终极方案,是有些吹牛了,大家都知道爬虫和反爬之家的道高一尺魔高一丈的...
  • 通过headers字段来反爬 通过请求参数来反爬 打码平台的使用 云打码的使用 js2py的介绍
  • 常见的反爬手段和解决思路 学习目标 了解 服务器反爬的原因 了解 服务器常反什么样的爬虫 了解 反爬虫领域常见的一些概念 了解 反爬的三个方向 了解 常见基于身份识别进行反爬 了解 ...
  • 一些页面 会对关键字进行加密。爬取的时候,不能获取到正确的数据 一、58 网站的字体加密 页面的效果 源码: 可以看出 数字在源码中,未特殊的文字。 二、icomoon对字体的加密 未完待续 ......
  • 关于爬虫和反爬

    2019-02-04 23:42:32
    第一是,这个行业是隐藏在地下的,一般很少曝光出来。很多公司对外都不会宣称自己有爬虫团队,甚至隐瞒自己有反爬虫团队的事实。这可能是出于公司战略角度来看的,与技术无关。 第二是,这个行业并不是一个很...
  • Selenium之爬虫与反爬

    2020-05-31 22:11:54
    凡是有过想爬取携程酒店信息的同学,估计都时携程的反爬技术所困扰。参数OCEANBALL,ELEVEN的加密解密,就够大家琢磨十天半个月了,在碰上个没有JS基础的同学,基本就可以直接放弃了。最关键的是,携程的加密方法...
  • 商标局网请收下我的膝盖-反爬与反反爬的奇技淫巧吴桐神箭手CEO-来shenjian.io,写爬虫,大数据,人工智能115 人赞了该文章今天打算写最后一篇的反爬与反反爬的文章了,毕竟奇技淫巧很多,但是万变不离其宗,熟练掌握...
  • 反爬虫的工程师也是煞费苦心,一方面是不让真实的数据大规模爬取,另一方面也给你后期的数据处理增加负担。如果数据伪造的好,可能你真的不容易发现自己爬的是假数据,当然只能依靠你后期去清洗这些数据了。
  • 常见反爬应对处理

    2019-06-04 20:55:01
    处理cookie coolie作为前端常用的本地存储方式之一,在各网站往往发挥着很重要的作用,比如:保存用户...还有部分网站同一cookie访问频率过高会封,此时则需要禁用cookie。 实际情况允许条件下利用Selenium实现自...
  • 有些网站的反爬机制是很强的,不仅网络请求中的参数经过 JS 加密,甚至还针对一些常用的爬虫工具,如 Selenium 作了屏蔽。 比如前段时间我爬取的卫健委官网,反爬机制就相当变态(传送门:Python网络爬虫实战:卫健...
  • 一入爬虫深似海,反爬技术你知多少?

    万次阅读 多人点赞 2020-03-11 21:18:58
    同情三分钟… 其实CSS加密+SVG映射+字体反爬网上的教程基本都遍地能看到,解决思路也很明了,但是随着各路大佬破解以后的技术共享,不得不让dzdp等其他网站的开发人员变着花样的玩呐 但是呢?所有的反爬虫都会有...
  • 常见的反爬策略及其破解方法

    千次阅读 2018-10-28 12:08:54
    用爬虫抓取网站数据的时候,经常会突然发现抓不了数据,这就说明你的爬虫程序对方服务器识别为爬虫了。大型的网站都会设定完备的反爬策略,来维护自身的信息,而一般对方服务器判断请求者是一个合法者,多通过User-...
  • 常见的反爬手段和解决思路 学习目标 了解 服务器反爬的原因 了解 服务器常反什么样的爬虫 了解 反爬虫领域常见的一些概念 了解 反爬的三个方向 了解 常见基于身份识别进行反爬 了解 常见基于爬虫行为进行反爬 了解 ...
  • 1、服务器反爬的原因 爬虫占总PV(PV是指页面的访问次数,每打开或刷新一次页面,就算做一个PV)比较高,浪费资源(尤其是三月份爬虫)。 公司可免费查询的资源批量抓走,丧失竞争力。 法律的灰色地带,状告爬虫...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 713
精华内容 285
关键字:

被反爬怎么办