超正义的小煌 发表于 2021-5-12 18:15

求助selenium爬取网页时空白,应该用哪种方法解决?

我放弃了使用urllib3和bs4进行网页爬取,爬取下来的数据都是这种乱码
<script type="text/javascript" src="https://cache101.ic.net.cn/media/javascript/q.js?v=1616807238"></script><script type="text/javascript" src="https://cache101.ic.net.cn/media/javascript/w.js?v=1616807238"></script><script type="text/javascript">var rind="xajgxs=GtaRLNR;g\"ds";var rnns//@$%%&*(3746)(&(^%^
            /*
            bBtdze\"=""*/="4UZ"
            ;//ashjgfgf
            rind
                        //fewfwe3232
                        =268;
                        /*423rfewfwe*/
                     //fegrbnn4325;543
                  dfsind=
                  /**//**/946;
            rind=/*
            @#%$^&%$96667r45fggbh
            IgSuM3lq*//**//**/1//e9IHwMaB
            ;"#@$#%@#aarDwjDvjCkV02hu";592659
            /*
            rind=/*
                        //fewfwe3232
                        =37*//*423rfewfwe*/
                     //fegrbnn4325;543
                  /*rind=
                546;*/</script><script type="text/javascript">sEnc();</script><script type="text/javascript">window.onload=function(){location.href=location.href}</script>
于是我就想到了使用selenium自动化进行获取数据,代码运行后,自动打开该页面出现了空白


然后我就想会不会是因为上面出现了Chrome正受到自动测试软件的控制这几个字触发了反爬机制,于是我就去掉了这个几个字,还是不行,页面还是空白(谷歌版本:Chrome/90.0.4430.212)


请求帮忙,拜托了,我搞了好久没能解决,现在一直在想这个问题,谢谢早上的大佬的回答,拜托大佬们。

chooper 发表于 2021-5-12 18:38

放链接来看看

南归不NG 发表于 2021-5-12 18:45

显而易见,不是一般的反爬

超正义的小煌 发表于 2021-5-12 18:48

chooper 发表于 2021-5-12 18:38
放链接来看看

我已经私法大佬你链接了,网上的方法您可以试一下,比如:消除框
chrome_options.add_experimental_option('excludeSwitches', ['enable-automation'])之类的

网上还有一些我不懂的方法,请大佬指点

anandyuan 发表于 2021-5-12 19:22

本帖最后由 anandyuan 于 2021-5-12 19:29 编辑

那几个字不是触发了反爬

jiansuper 发表于 2021-5-12 20:00

我觉得firefox handless 比较好用

超正义的小煌 发表于 2021-5-12 20:03

anandyuan 发表于 2021-5-12 19:22
那几个字不是触发了反爬

你搜索的时候就会出现空白,首页可以正常响应

1595901624 发表于 2021-5-12 20:14

用这个库试试 puppeteer,nodejs的库,但是也有Java版,个人感觉比较好用

anandyuan 发表于 2021-5-12 20:34

超正义的小煌 发表于 2021-5-12 20:03
你搜索的时候就会出现空白,首页可以正常响应这样就好了
from selenium import webdriver

bro = webdriver.Chrome()
bro.get('https://www.ic.net.cn/')
#防止selenium被检测
bro.execute_cdp_cmd("Page.addScriptToEvaluateOnNewDocument", {
      "source": """
    Object.defineProperty(navigator, 'webdriver', {
      get: () => false
    })
"""
    })
bro.find_element_by_id('key').click()
bro.find_element_by_xpath('//*[@id="key"]').send_keys('TSCDJJN005PDUCV')
#元素相互覆盖,所以执行js脚本
bro.execute_script('document.querySelector("#btn_topSearch").click();')
页: [1]
查看完整版本: 求助selenium爬取网页时空白,应该用哪种方法解决?