selenium登录爬取知乎出现:请求异常请升级客户端后重试的问题(用Python中的selenium接管chrome)

selenium登录爬取知乎出现:请求异常请升级客户端后重试的问题(用Python中的selenium接管chrome)

一、问题

使用selenium自动化测试爬取知乎的时候出现了:错误代码10001:请求异常请升级客户端后重新尝试,这个错误的产生是由于知乎可以检测selenium自动化测试的脚本,因此可以阻止selenium的继续访问。这也算是比较高级的反爬取措施。

二、解决

解决方法,使用自己打开的一个浏览器,再用selenium接管这个浏览器这样就可以完成反爬的处理。

  1. 增加一个新的映射,以保存原来的chrome不被污染
    1.1 添加环境变量
    将chrome.exe放入系统环境变量中,找到驱动位置添加变量,如果没找到,最快的方法就是点击图标右键,点击访问文件地址,将此路径添加到环境变量的path变量

chrome.exe位置
在这里插入图片描述
在这里插入图片描述

1.2 新建一个存放新环境的文件夹并映射
打开cmd窗口,使用指令【chrome.exe --remote-debugging-port=9222 --user-data-dir=“E:\data_info\selenium_data”】
其中–remote-debugging-port是建立新的移植位置,其中端口后面会使用(自定义), --user-data-dir是数据存储的目录(自定义)
在这里插入图片描述
此时会打开一个网页放着就行

  1. selenium代码接管
    通过下面的代码就可以登录知乎
import time
import json

from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.support.ui import WebDriverWait


class ZhiHu:
    def __init__(self):
        self.url = 'https://www.zhihu.com/'
        self.chrome_options = Options()
        self.chrome_options.add_experimental_option("debuggerAddress", "127.0.0.1:9222")  #  前面设置的端口号
        self.browser = webdriver.Chrome(executable_path=r'E:\Environment\python_global\Scripts\chromedriver.exe', options=self.chrome_options)  # executable执行webdriver驱动的文件

    def get_start(self):
        self.browser.get(self.url)
        # time.sleep(20)  # 可以选择手动登录或者是自动化,我这里登录过就直接登陆了
        info = self.browser.get_cookies()  # 获取cookies
        print(info)
        with open(r"..\download_txt\info.json", 'w', encoding='utf-8') as f:
            f.write(json.dumps(info))


if __name__ == '__main__':
    zhihu = ZhiHu()
    zhihu.get_start()

三、结果展示

在这里插入图片描述

四、总结

利用这个selenium接管正在使用的浏览器就可以绕过知乎的反爬,当然也可以做更多的爬虫,selenium在爬虫的使用中还是有重要的地位,偷懒一点就可以使用这个。这种方法可以获取cookies这样在使用其他的爬虫,就可以使用这个cookies会加快爬取的效率,以及突破不适用浏览器的反爬措施。这引起我们另一个思考,我们直接接管我们正常的chrome好像更加的高效,这个可以以后的学习中尝试一下。

  • 7
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
根据引用\[1\]和引用\[2\]的内容,错误代码10001:请求异常升级客户端后重新尝试是由于知乎可以检测selenium自动化测试的脚本,从而阻止了selenium的继续访问。为了解决这个问题,可以使用自己打开的一个浏览器,然后再用selenium接管这个浏览器,这样就可以完成反爬的处理。具体的解决方法是,建议添加一个新的映射,以保存原来的chrome不被污染。可以将chrome.exe放入系统环境变量,并找到驱动位置添加变量。如果找不到驱动位置,可以通过点击图标右键,然后点击访问文件地址来找到chrome.exe的位置,并将该路径添加到环境变量的path变量。这样就可以解决请求异常问题。\[2\] 关于您提到的复制请求浏览器打开的错误信息{"error":{"message":"请求参数异常升级客户端重试","code":10003}},根据提供的信息,这个错误是由于请求参数异常导致的。建议您检查请求参数是否正确,并尝试升级客户端后重新尝试。如果问题仍然存在,您可以查看知乎的开发者文档或联系知乎的技术支持以获取更详细的帮助。 #### 引用[.reference_title] - *1* *3* [selenium登录爬取知乎出现请求异常升级客户端重试问题(用Pythonselenium接管chrome)](https://blog.csdn.net/zhuan_long/article/details/109800202)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [selenium登录爬取知乎出现请求异常升级客户端重试问题(用Pythonselenium接管chrome)...](https://blog.csdn.net/weixin_30343157/article/details/98912354)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值