python爬虫-seleniumwire模拟浏览器反爬获取参数

这篇具有很好参考价值的文章主要介绍了python爬虫-seleniumwire模拟浏览器反爬获取参数。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


前言

在进行数据爬取时,有时候遇到一些比较复杂的js逆向。在不考虑访问效率的情况下,使用selenium模拟浏览器的方法可以大大减少反反爬逆向工作量。但普通的selenium库是无法获取到类似set-cookie等参数的,这时候需要用到selenium-wire库。其用法类似selenium


一、安装

首先安装selenium-wire库

pip install selenium-wire

python爬虫 chromedriver默认隐藏浏览器吗,爬虫,python,爬虫,开发语言
然后下载指定的chromedriver,根据电脑上的chrome版本进行下载
python爬虫 chromedriver默认隐藏浏览器吗,爬虫,python,爬虫,开发语言
chromedriver下载地址

二、简易使用

from seleniumwire import webdriver

driver = webdriver.Chrome(executable_path='chromedriver.exe')
driver.get('https://www.baidu.com')

即可看到如下界面:
python爬虫 chromedriver默认隐藏浏览器吗,爬虫,python,爬虫,开发语言
如果出现报错说chromedriver版本不匹配,并且提示了本地电脑上的chrome版本,则回到chromedriver下载地址下载相对应版本

三、加入参数

1. 隐藏浏览器窗口

如果要让浏览器窗口不显示而在后台允许,加入headless参数:

options = webdriver.ChromeOptions()
options.add_argument("--headless")
driver = webdriver.Chrome(executable_path='chromedriver.exe', options=options)

2. 添加cookies

使用add_cookie方法可以添加cookie,一次添加一个name和value

cookie = {
    'browserid': '12345678910',
    '_ga': '12345678910',
    'sessionid': '12345678910',
}
for name, value in cookie.items():
    driver.add_cookie({"name": name, "value": value, "domain": "baidu.com"})
driver.get('https://www.baidu.com')

此处可能会报错:
python爬虫 chromedriver默认隐藏浏览器吗,爬虫,python,爬虫,开发语言
解决的办法是在add_cookie前先get一次

driver.get('https://www.baidu.com')
cookie = {
    'browserid': '12345678910',
    '_ga': '12345678910',
    'sessionid': '12345678910',
}
for name, value in cookie.items():
    driver.add_cookie({"name": name, "value": value, "domain": "baidu.com"})
driver.get('https://www.baidu.com')

之后即可成功访问并设置cookie,效果如下:
python爬虫 chromedriver默认隐藏浏览器吗,爬虫,python,爬虫,开发语言

四、使用代理

有时候需要访问的网站需要科学上网,这时候需要为driver设置代理才能正常访问
代理设置为你自己的代理端口,我的是127.0.0.1:7890:

seleniumwire_options = {
    'proxy': {
        'http': 'http://127.0.0.1:7890',
        'https': 'https://127.0.0.1:7890'
    }
}
# 注意是seleniumwire_options而不是options
driver = webdriver.Chrome(executable_path='chromedriver.exe', seleniumwire_options=seleniumwire_options)
driver.get('https://www.youtube.com')

这时就可以正常访问某些网站了

五、获取cookies等参数

使用get_cookies方法即可获取到访问过程中网页set的cookie值

for item in driver.get_cookies():
    print(item)

将输出类似如下结果:
python爬虫 chromedriver默认隐藏浏览器吗,爬虫,python,爬虫,开发语言
也可以遍历requests获取所有访问历史的详情

for request in driver.requests:
    print(request.url)
    print(request.headers)
    print(request.response)

可以看到每个访问:
python爬虫 chromedriver默认隐藏浏览器吗,爬虫,python,爬虫,开发语言


总结

以上就是使用python selenium-wire库的一些简单使用方法。希望对大家有所帮助文章来源地址https://www.toymoban.com/news/detail-774247.html

到了这里,关于python爬虫-seleniumwire模拟浏览器反爬获取参数的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Python爬虫入门:使用selenium库,webdriver库模拟浏览器爬虫,模拟用户爬虫,爬取网站内文章数据,循环爬取网站全部数据。

    *严正声明:本文仅限于技术讨论与分享,严禁用于非法途径。 目录 准备工具: 思路: 具体操作: 调用需要的库: 启动浏览器驱动: 代码主体:  完整代码(解析注释): Python环境; 安装selenium库; Python编辑器; 待爬取的网站; 安装好的浏览器; 与浏览器版本相对应的

    2023年04月24日
    浏览(55)
  • python爬虫进阶篇:Scrapy中使用Selenium模拟Firefox火狐浏览器爬取网页信息

    接着上一篇的笔记,Scrapy爬取普通无反爬、静态页面的网页时可以顺利爬取我们要的信息。但是大部分情况下我们要的数据所在的网页它是动态加载出来的(ajax请求后传回前端页面渲染、js调用function等)。这种情况下需要使用selenium进行模拟人工操作浏览器行为,实现自动化

    2024年02月04日
    浏览(73)
  • java爬虫遇到网页验证码怎么办?(使用selenium模拟浏览器并用python脚本解析验证码图片)

            笔者这几天在爬取数据的时候遇到了一个很闹心的问题,就是在我爬取数据的时候遇到了验证码,而这个验证码又是动态生成的,尝试了很多方法都没能绕开这个验证码问题。         我的解决方案是:使用selenium模拟浏览器行为,获取到动态生成的验证码后用

    2024年02月09日
    浏览(106)
  • 爬虫进阶之selenium模拟浏览器

    Selenium是一个用于自动化浏览器操作的工具,通常用于Web应用测试。然而,它也可以用作爬虫,通过模拟用户在浏览器中的操作来提取网页数据。以下是有关Selenium爬虫的一些基本介绍: 浏览器自动化: Selenium允许你通过编程方式控制浏览器的行为,包括打开网页、点击按钮

    2024年01月20日
    浏览(66)
  • [爬虫]2.2.1 使用Selenium库模拟浏览器操作

    Selenium是一个非常强大的工具,用于自动化Web浏览器的操作。它可以模拟真实用户的行为,如点击按钮,填写表单,滚动页面等。由于Selenium可以直接与浏览器交互,所以它可以处理那些需要JavaScript运行的动态网页。 首先,我们需要安装Selenium库。你可以使用pip命令来安装:

    2024年02月16日
    浏览(55)
  • python 爬虫热身篇 使用 requests 库通过 HTTP 读取网络数据,使用 pandas 读取网页上的表格,使用 Selenium 模拟浏览器操作

    在过去,收集数据是一项繁琐的工作,有时非常昂贵。机器学习项目不能没有数据。幸运的是,我们现在在网络上有很多数据可供我们使用。我们可以从 Web 复制数据来创建数据集。我们可以手动下载文件并将其保存到磁盘。但是,我们可以通过自动化数据收集来更有效地做

    2023年04月08日
    浏览(70)
  • 项目总面试技巧,利用Selenium模拟浏览器进行爬虫,解析底层原理

    count = 0 def getCommentList(): global count try: commentList = driver.find_elements_by_css_selector(‘div.reply-content’) for comment in commentList: content = comment.find_element_by_tag_name(‘p’) print(content.text) count = count + 1 return commentList except: return None def clickMoreButton() - bool: try: moreButton = driver.find_element_by_css_se

    2024年04月17日
    浏览(35)
  • selenium反爬-绕过浏览器指纹的常用方法

    代码如下: Undetected_chromedriver 是一个经过优化的 Selenium WebDriver ,可以避免触发反机器人程序。 如绕过 Cloudflare 、Akamai、知乎。它适用于 Google Chrome 、 Brave 和许多其他基于 Chromium 的浏览器。 代码如下: 还有一点要注意: 异常现象: 如果使用 pyinstaller 对 undetected-chromedriv

    2024年02月13日
    浏览(53)
  • 爬虫之Cookie获取:利用浏览器模拟一个cookie出来、面对反爬虫、加密的cookie的应对方法

    在爬虫或模拟请求时,特别是获取验证码的时候,反爬虫的网站的cookie或定期失效,复制出来使用是不行的 为了应对这种方式,我们可能就需要像浏览器打开网站一样,取得它信任的cookie selenium就是一个很好的手段 一、什么是selenium Selenium最初是一个自动化测试工具,Selen

    2024年01月16日
    浏览(43)
  • Python爬虫(2)-Selenium控制浏览器

    Selenium中提供了不少的方法来操作浏览器 使用driver.get(‘网址’)的方式来打开浏览器 driver.refresh() 浏览器切换标签的方法就是, driver.current_window_handle 用selenium点击新打开了一个网页,需要告知selenium目前这个窗口是新的窗口,那么它才能早新的页面进行操作不然的话就无法操

    2024年02月08日
    浏览(52)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包