利用Python中selenium库爬虫实现中国裁判文书网自动登录批量下载功能——最新版详细教程!!

这篇具有很好参考价值的文章主要介绍了利用Python中selenium库爬虫实现中国裁判文书网自动登录批量下载功能——最新版详细教程!!。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

工具准备

Chrome浏览器

如果电脑上没有chrome浏览器或者当前chrome浏览器不是最新版,请先去chrome官网下载安装最新版chrome浏览器
https://www.google.cn/chrome/index.html

ChromeDriver驱动

什么是ChromeDriver

ChromeDriver是一种用于自动化和控制Google Chrome浏览器的工具。它是一个开源的项目,由Google维护,并提供给开发者使用。ChromeDriver充当一个桥梁,允许自动化测试工具或脚本与Chrome浏览器进行交互。

具体来说,ChromeDriver通过与Chrome浏览器通信,执行各种操作,如打开网页、模拟用户输入、获取页面元素等。这对于自动化测试、网页抓取、自动化任务等场景非常有用。

一般来说,如果你想使用Selenium(一个用于自动化测试的工具)来自动化Chrome浏览器,你需要下载并配置ChromeDriver。Selenium将通过ChromeDriver与Chrome浏览器进行通信,从而实现自动化测试脚本的执行。

下载安装

首先,需要检查Chrome浏览器的版本。请按照以下步骤进行:

打开Chrome浏览器后,如下图所示进行操作
利用Python中selenium库爬虫实现中国裁判文书网自动登录批量下载功能——最新版详细教程!!,Python爬虫,python,selenium,爬虫,chrome
然后就可以看到我们Chrome浏览器的版本了:
利用Python中selenium库爬虫实现中国裁判文书网自动登录批量下载功能——最新版详细教程!!,Python爬虫,python,selenium,爬虫,chrome
注意:如果你的Chrome浏览器是最新版,一般就不用看了,ChromeDriver也安装最新版即可!!

请记下这个版本号,因为需要确保下载与Chrome浏览器版本相匹配的ChromeDriver

相同版本号只需第一位数字相同即可,比如Chrome版本号是120.0.6099.110,所以ChromeDriver下载版本号120开头的即可
ChromeDriver最新版本链接:https://googlechromelabs.github.io/chrome-for-testing/
打开链接后如下图所示:
利用Python中selenium库爬虫实现中国裁判文书网自动登录批量下载功能——最新版详细教程!!,Python爬虫,python,selenium,爬虫,chrome
按照自己电脑的系统选择url进行下载
(win系统的不区分64位和32位,电脑64位的下载win32就行)

实现细节

ChromeDriver下载完成后解压缩,打开

利用Python中selenium库爬虫实现中国裁判文书网自动登录批量下载功能——最新版详细教程!!,Python爬虫,python,selenium,爬虫,chrome

  1. 我们需要把chromedriver.exe文件复制到chrome的安装路径
    如果不记得自己Chrome的安装路径的话,就找到Chrome浏览器的快捷方式,右键->打开文件所在的位置

利用Python中selenium库爬虫实现中国裁判文书网自动登录批量下载功能——最新版详细教程!!,Python爬虫,python,selenium,爬虫,chrome

  1. 如果此时显示的位置Chrome仍是快捷方式不是chrome.exe的话,继续执行右键->打开文件所在的位置

利用Python中selenium库爬虫实现中国裁判文书网自动登录批量下载功能——最新版详细教程!!,Python爬虫,python,selenium,爬虫,chrome

  1. 然后找到了chrome安装位置,将chromedriver.exe拷贝进来,如下图

利用Python中selenium库爬虫实现中国裁判文书网自动登录批量下载功能——最新版详细教程!!,Python爬虫,python,selenium,爬虫,chrome
4. 完成复制后,不要急着关闭文件夹,复制一下当前文件路径,也就是chrome.exe的所在路径,后面会用到,比如:C:\Program Files (x86)\Google\Chrome\Application(系统默认安装位置)

环境变量配置

这一步非常关键!!

  1. 在桌面找到此电脑图标,右键–>属性,然后找到高级系统设置
    利用Python中selenium库爬虫实现中国裁判文书网自动登录批量下载功能——最新版详细教程!!,Python爬虫,python,selenium,爬虫,chrome
  2. 然后点击环境变量
    利用Python中selenium库爬虫实现中国裁判文书网自动登录批量下载功能——最新版详细教程!!,Python爬虫,python,selenium,爬虫,chrome
  3. 在用户变量中找到Path变量,选中path变量后点击编辑
    利用Python中selenium库爬虫实现中国裁判文书网自动登录批量下载功能——最新版详细教程!!,Python爬虫,python,selenium,爬虫,chrome利用Python中selenium库爬虫实现中国裁判文书网自动登录批量下载功能——最新版详细教程!!,Python爬虫,python,selenium,爬虫,chrome
  4. 点击新建按钮,然后把刚才复制的chrome.exe的路径位置粘贴到此处,如下图所示:
    . 利用Python中selenium库爬虫实现中国裁判文书网自动登录批量下载功能——最新版详细教程!!,Python爬虫,python,selenium,爬虫,chrome
  5. 然后切记:退出时有确定键一直选择”确定“键才能使保存生效

Python库安装

  1. 将代码拷贝到Pycharm编辑器中,选择好自己的Python环境(关于如何配置Python环境如果大家不会的话就自行百度一下,网上很多教程)
  2. 如果看到如下图所示的selenium爆红
    利用Python中selenium库爬虫实现中国裁判文书网自动登录批量下载功能——最新版详细教程!!,Python爬虫,python,selenium,爬虫,chrome
  3. 在编辑器中左下角找到Terminal(终端),
    利用Python中selenium库爬虫实现中国裁判文书网自动登录批量下载功能——最新版详细教程!!,Python爬虫,python,selenium,爬虫,chrome
  4. 输入命令安装selenium库
pip install selenium
  1. 如果time库爆红,同样的命令安装time库
pip install time

完整代码

现在前面的准备工作已全部就绪,先贴完整python代码

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.select import Select
import time

# 初始化selenium
url = 'https://wenshu.court.gov.cn/website/wenshu/181029CR4M5A62CH/index.html?'

option = webdriver.ChromeOptions()
option.add_argument('--start-maximized')
option.add_experimental_option('excludeSwitches', ['enable-automation'])

# 'profile.default_content_settings.popups': 0  ==  禁用弹出窗口
# 'download.default_directory': 'D:\Desktop\wenshu'  == 设置默认下载路径
# 'profile.default_content_setting_values.automatic_downloads': 1 == 并设置自动下载的选项
prefs = {'profile.default_content_settings.popups': 0, 
		 'download.default_directory': 'D:\wenshu',		# 设置自己的下载路径
         'profile.default_content_setting_values.automatic_downloads': 1}
option.add_experimental_option('prefs', prefs)

driver = webdriver.Chrome(options=option)
# 设置打开的浏览器窗口最大化
driver.maximize_window()
driver.set_page_load_timeout(30)
driver.get(url)

# 转到登录界面自动输入手机号密码进行登录
driver.find_element(By.XPATH, '//*[@id="loginLi"]/a').click()
text = driver.page_source
time.sleep(10)  # 等待页面渲染
# 进入iframe框
iframe = driver.find_elements(By.TAG_NAME, 'iframe')[0]
driver.switch_to.frame(iframe)

# 下面的‘手机号’‘密码’输入自己中国裁判文书网注册的真实手机号密码
username = driver.find_element(By.XPATH, '//*[@id="root"]/div/form/div/div[1]/div/div/div/input')
username.send_keys('手机号')

time.sleep(3)

username = driver.find_element(By.XPATH, '//*[@id="root"]/div/form/div/div[2]/div/div/div/input')
username.send_keys('密码')

time.sleep(2)
driver.find_element(By.XPATH, '//*[@id="root"]/div/form/div/div[3]/span').click()
time.sleep(3)

# 必须加上表单退出,否者就是死元素无法定位
driver.switch_to.default_content()

# 这行代码的作用就相当于你手动点了一下‘刑事案件’那个按钮
# 要下载民事案件就把下一行代码里的刑事案件改成‘民事案件’,以此类推
driver.find_element(By.LINK_TEXT, '刑事案件').click()

time.sleep(10)
# testHtml(driver.page_source)

_lastWindow = driver.window_handles[-1]
driver.switch_to.window(_lastWindow)

# 选择案件批量下载 

# 这行代码的作用就相当于你手动点了一下‘法院层级’那个按钮
# driver.find_element(By.LINK_TEXT, '法院层级').click()

# 按照裁判日期排序显示最新600条
# driver.find_element(By.LINK_TEXT, '裁判日期').click()
# 按照裁判日期从前到后显示最老600条
# driver.find_element(By.LINK_TEXT, '裁判日期').click()

# 按照审判程序排序显示最新600条
# driver.find_element(By.LINK_TEXT, '审判程序').click()
# 按照审判程序从前到后显示最老600条
# driver.find_element(By.LINK_TEXT, '审判程序').click()

# 将每页文件数设置为最大,15条
page_size_box = Select(driver.find_element(By.XPATH, '//*[@id="_view_1545184311000"]/div[8]/div/select'))
page_size_box.select_by_visible_text('15')

def test_exceptions(xpath):
    try:
        driver.find_element(By.XPATH, xpath)
        return True
    except:
        return False

page = 1
# 最多显示600条文件,也就是40页
while page <= 40:
    time.sleep(5+page/10)
    for i in range(15):
        time.sleep(5+i/10)
        event_xpath = '//*[@id="_view_1545184311000"]/div[' + str(i+3) + ']/div[6]/div/a[2]'
        if test_exceptions(event_xpath) == True:
            driver.find_element(By.XPATH, event_xpath).click()
        else:
            event_xpath = '//*[@id="_view_1545184311000"]/div[' + str(i+3) + ']/div[5]/div/a[2]'
            if test_exceptions(event_xpath) == True:
                driver.find_element(By.XPATH, event_xpath).click()

    # 下一页按钮,不能用Xpath定位,因为“下一页”按钮位置不固定
    # driver.find_element(By.LINK_TEXT, '下一页').click()
    time.sleep(5)
    driver.find_element(By.LINK_TEXT, '下一页').click()
    # 必须加上表单退出,否者就是死元素无法定位
    driver.switch_to.default_content()
    page += 1

# 关闭整个浏览器窗口并终止与浏览器的会话
driver.quit()

运行时

代码也配置无误后,运行代码会自动弹出一个chrome浏览器窗口界面

弹出界面显示下图输入验证码时需要用户手动输入并点击确定:
利用Python中selenium库爬虫实现中国裁判文书网自动登录批量下载功能——最新版详细教程!!,Python爬虫,python,selenium,爬虫,chrome
正常情况下不需要用户进行任何操作。输入账号、密码,点击登录按钮登录这些都是会自动执行的!!!
代码中很多操作都设置有延迟几秒的操作,所以代码运行过程中只要没有中断,网页突然自动关闭,就没问题。大家不要着急,只需耐心等待即可。

下载自定义

  1. 修改代码中第17行设置自己想要的下载路径:
'download.default_directory': 'D:\xxx\xxx',
 分隔符注意用单个的反斜线'\';可以是不存在的路径,会自动创建该路径
  1. 代码37行和42行修改为真实的已注册的手机号密码
line 37: username.send_keys('XXX')		XXX改为自行注册的手机号
line 42: username.send_keys('XXX')		XXX改为注册时设置的密码
  1. 自定义选择下载内容
    利用Python中selenium库爬虫实现中国裁判文书网自动登录批量下载功能——最新版详细教程!!,Python爬虫,python,selenium,爬虫,chrome

    1,2,3,4,5这五行代码:文章来源地址https://www.toymoban.com/news/detail-766473.html

  • 全部注释---------------------------------按照法院层级从高到低排序
  • 保留1,注释其他----------------------按照法院层级从低到高排序
  • 保留2,注释其他----------------------按照裁判日期由近到远排序
  • 保留2和3,注释其他-----------------按照裁判日期由远到近排序
  • 保留4,注释其他----------------------按照审判程序由近到远排序
  • 保留4和5,注释其他-----------------按照裁判日期由远到近排序

到了这里,关于利用Python中selenium库爬虫实现中国裁判文书网自动登录批量下载功能——最新版详细教程!!的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • Python利用Selenium实现自动化验证登录

    Python里面使用Selenium是一个很重要的自动化测试模块,我们可以用它写一个验证登录脚本,有了这个可以用来保存cookie信息等,下面是一个简单的demo:

    2024年02月15日
    浏览(13)
  • Python爬虫入门系列之Selenium实现动态页面爬取

    在前一篇博客中,我们学习了如何使用多线程优化爬虫程序。但是,如果要爬取的网页是动态生成的或者包含大量JavaScript代码,单纯的静态页面爬取就不足够了。为了解决这个问题,我们可以使用Selenium库来模拟真实的浏览器行为,从而实现动态页面的爬取。 Selenium是一个用

    2024年02月11日
    浏览(11)
  • Python利用Selenium实现弹出框的处理

    Python利用Selenium实现弹出框的处理

    现如今经常出现在网页上的基于 JavaScript 实现的弹出框有三种,分别是  alert、confirm、prompt  。该章节主要是学习如何利用 selenium 处理这三种弹出框。奥利给,冲! JavaScript的三种对话框是通过调用 \\\"window对象\\\" 的三个方法 \\\"alert()\\\"、\\\"confirm()\\\" 、\\\"prompt()\\\" 来获得,我们可以利用这

    2024年02月01日
    浏览(16)
  • Python爬虫框架之Selenium库入门:用Python实现网页自动化测试详解

    Python爬虫框架之Selenium库入门:用Python实现网页自动化测试详解

    是否还在为网页测试而烦恼?是否还在为重复的点击、等待而劳累?试试强大的 Selenium !让你的网页自动化测试变得轻松有趣! Selenium 是一个强大的自动化测试工具,它可以让你直接操控浏览器,完成各种与网页交互的任务。通过使用 Python 的 Selenium 库,你可以高效地实现

    2024年02月10日
    浏览(15)
  • Python爬虫+selenium+超级鹰实现自动登录b站(最新可用版)

    Python爬虫+selenium+超级鹰实现自动登录b站(最新可用版)

    注意:这里采用的是新版的selenium有关事项 1.旧版FindsByID、FindsByCss等已被删除,并替换为Find_element(By.ID,\\\' \\\'),Find_elements(By.Xpath,\\\" \\\")等实例。 2.move_to_element_with_offset 的方法定位基准位置从左上角修改为中心   观察登录图标,账号、密码,登录按钮相关的元素 使用find_element()方法

    2024年02月04日
    浏览(18)
  • 【小5聊】Python3 使用selenium模块实现简单爬虫系列一

    【小5聊】Python3 使用selenium模块实现简单爬虫系列一

    第一次听说Python还是在工作的时候,还是一位女生在用,当时她说可以用来处理excel文档,特别是一些统计分析。第二次让我真正进入python世界,还是在一次C站举办的大赛上。聊聊你是因为什么机缘巧合进入到python圈的呢?不妨留言说说 本期主要是聊聊,我接触到的selenium模

    2024年02月06日
    浏览(13)
  • 【Python爬虫】利用爬虫抓取双色球开奖号码,获取完整数据,简洁45行代码实现,更新时间2023-06-28

    【Python爬虫】利用爬虫抓取双色球开奖号码,获取完整数据,简洁45行代码实现,更新时间2023-06-28

    链接:https://pan.baidu.com/s/18oE308_NVNPaCOACw_H5Hw?pwd=abc1  利用爬虫抓取双色球开奖号码,获取完整数据,简洁45行代码实现,更新时间2023-06-28 这是网上的数据,怎么将它爬取下来 它将只爬取最近30期的双色球开奖号码,并将结果写入到名为 \\\"双色球开奖结果.csv\\\" 的文件中。   生成

    2024年02月15日
    浏览(117)
  • 如何利用 Selenium 对已打开的浏览器进行爬虫

    如何利用 Selenium 对已打开的浏览器进行爬虫

    大家好! 在对某些网站进行爬虫时,如果该网站做了限制,必须完成登录才能展示数据,而且只能通过短信验证码才能登录 这时候,我们可以通过一个已经开启的浏览器完成登录,然后利用程序继续操作这个浏览器,即可以完成数据的爬取了 具体操作步骤如下: 1-1 安装依

    2024年02月09日
    浏览(13)
  • 爬虫项目实战:利用基于selenium框架的爬虫模板爬取豆瓣电影Top250

    爬虫项目实战:利用基于selenium框架的爬虫模板爬取豆瓣电影Top250

    👋 Hi, I’m @货又星 👀 I’m interested in … 🌱 I’m currently learning … 💞 I’m looking to collaborate on … 📫 How to reach me … README 目录(持续更新中) 各种错误处理、爬虫实战及模板、百度智能云人脸识别、计算机视觉深度学习CNN图像识别与分类、PaddlePaddle自然语言处理知识图谱、

    2024年02月04日
    浏览(16)
  • python爬虫 scrapy+selenium+webdriver实现鼠标滑动破解阿里云盾快验证

    在爬取jianshu文章的时候发现,jianshu竟然买了阿里云的盾块验证!!!很是头疼,虽然说没有其他图片匹配的那么麻烦,但是阿里云的人机验证和算法真的是顶尖的,查阅了多个资料最后没办法,才实现用webdriver模拟鼠标去通过验证 首先我们需要安装webdriver驱动和Google Chrom

    2024年02月03日
    浏览(49)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包