从入门到入土:学习|实例练手|获取裁判决定网|Selenium出击|绕过反爬机制|实现批量下载裁决书|狗头保命|仅用于学习交流|Selenium自动化操作

本文主要是介绍从入门到入土:学习|实例练手|获取裁判决定网|Selenium出击|绕过反爬机制|实现批量下载裁决书|狗头保命|仅用于学习交流|Selenium自动化操作,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

此博客仅用于记录个人学习进度,学识浅薄,若有错误观点欢迎评论区指出。欢迎各位前来交流。(部分材料来源网络,若有侵权,立即删除)
本人博客所有文章纯属学习之用,不涉及商业利益。不合适引用,自当删除!
若被用于非法行为,与我本人无关
仅用于学习交流,若用于商业行为或违法行为,后果自负

学习|实例练手|获取裁判决定网

  • 情况说明
  • 代码分析
  • 代码展示
  • 运行结果
  • 总结

情况说明

  • 最近在学习法律

  • 想了解一系列的案例

  • 但是呢在对应的学习网站一个一个下载会很慢诶

  • 那就结合一下最近学习的内容

  • 在不吃牢饭的前提下,让电脑自己突然抽搐并且开始帮我下载案例文件,省得我一个一个点吧

  • 基于selenium进行了一些自动化操作

  • 主要分为Cookie的获取与用自己的账号模拟登录,然后让浏览器帮我们一个一个点下载的超链接

  • 关于cookies的获取和模拟登录可以看这里

代码分析

  • 库的引用
import time
import json
from selenium import webdriver
  • cookies获取函数
def get_cookies():driver = webdriver.Chrome()url='https://wenshu.court.gov.cn/'driver.get(url)#发送请求#打开之后,手动登录一次time.sleep(3)input('完成登陆后点击enter:')time.sleep(3)dictcookies = driver.get_cookies()  # 获取cookiesjsoncookies = json.dumps(dictcookies)  # 转换成字符串保存with open('cookie.txt', 'w') as f:f.write(jsoncookies)print('cookies保存成功!')driver.close()
  • 携带cookies进行访问网页
def test():driver = webdriver.Chrome()url = 'https://wenshu.court.gov.cn/'driver.get(url)  # 发送请求# 打开之后,手动登录一次time.sleep(3)with open('cookie.txt', 'r', encoding='utf8') as f:listCookies = json.loads(f.read())for cookie in listCookies:cookie_dict = {'domain': '.wenshu.court.gov.cn','name': cookie.get('name'),'value': cookie.get('value'),"expires": '','path': '/','httpOnly': False,'HostOnly': False,'Secure': False}driver.add_cookie(cookie_dict)driver.refresh()  # 刷新网页,才能实现cookie导入
  • 搜索活动
time.sleep(3)what=input("请输入查询关键词:")#输入参数driver.find_element_by_xpath('//*[@id="_view_1540966814000"]/div/div[1]/div[2]/input').clear()  # 清空搜索框time.sleep(0.5)driver.find_element_by_xpath('//*[@id="_view_1540966814000"]/div/div[1]/div[2]/input').send_keys("{}".format(what))  # 输入搜索内容time.sleep(0.5)WHAT = driver.find_element_by_xpath('//*[@id="_view_1540966814000"]/div/div[1]/div[3]')WHAT.click()#模拟鼠标动作点击driver.refresh()  # 刷新网页,才能实现cookie导入
  • 循环所有页面,依次定位并点击对应下载的位置
time.sleep(1)#driver.refresh()for i in range(1):for j in range(3,8):WHAT =driver.find_element_by_xpath('//*[@id="_view_1545184311000"]/div[{}]/div[6]/div/a[2]'.format(j))WHAT.click()driver.refresh()  # 刷新网页,才能实现cookie导入time.sleep(2)input("")driver.refresh()  # 刷新网页,才能实现cookie导入

代码展示

import time
import json
from selenium import webdriverdef get_cookies():driver = webdriver.Chrome()url='https://wenshu.court.gov.cn/'driver.get(url)#发送请求#打开之后,手动登录一次time.sleep(3)input('完成登陆后点击enter:')time.sleep(3)dictcookies = driver.get_cookies()  # 获取cookiesjsoncookies = json.dumps(dictcookies)  # 转换成字符串保存with open('cookie.txt', 'w') as f:f.write(jsoncookies)print('cookies保存成功!')driver.close()def test():driver = webdriver.Chrome()url = 'https://wenshu.court.gov.cn/'driver.get(url)  # 发送请求# 打开之后,手动登录一次time.sleep(3)with open('cookie.txt', 'r', encoding='utf8') as f:listCookies = json.loads(f.read())for cookie in listCookies:cookie_dict = {'domain': '.wenshu.court.gov.cn','name': cookie.get('name'),'value': cookie.get('value'),"expires": '','path': '/','httpOnly': False,'HostOnly': False,'Secure': False}driver.add_cookie(cookie_dict)driver.refresh()  # 刷新网页,才能实现cookie导入#print(cookie_dict)time.sleep(3)what=input("请输入查询关键词:")driver.find_element_by_xpath('//*[@id="_view_1540966814000"]/div/div[1]/div[2]/input').clear()  # 清空搜索框time.sleep(0.5)driver.find_element_by_xpath('//*[@id="_view_1540966814000"]/div/div[1]/div[2]/input').send_keys("{}".format(what))  # 输入搜索内容time.sleep(0.5)WHAT = driver.find_element_by_xpath('//*[@id="_view_1540966814000"]/div/div[1]/div[3]')WHAT.click()driver.refresh()  # 刷新网页,才能实现cookie导入time.sleep(1)#driver.refresh()for i in range(1):for j in range(3,8):WHAT =driver.find_element_by_xpath('//*[@id="_view_1545184311000"]/div[{}]/div[6]/div/a[2]'.format(j))WHAT.click()driver.refresh()  # 刷新网页,才能实现cookie导入time.sleep(2)input("")driver.refresh()  # 刷新网页,才能实现cookie导入if __name__ == "__main__":#get_cookies()test()

运行结果

在这里插入图片描述
在这里插入图片描述

总结

  • 多使用time.sleep()
  • 然后客观地说,并不属于爬虫,是基于Selenium自动化操作
  • 手动狗头

这篇关于从入门到入土:学习|实例练手|获取裁判决定网|Selenium出击|绕过反爬机制|实现批量下载裁决书|狗头保命|仅用于学习交流|Selenium自动化操作的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/362019

相关文章

Springboot的ThreadPoolTaskScheduler线程池轻松搞定15分钟不操作自动取消订单

《Springboot的ThreadPoolTaskScheduler线程池轻松搞定15分钟不操作自动取消订单》:本文主要介绍Springboot的ThreadPoolTaskScheduler线... 目录ThreadPoolTaskScheduler线程池实现15分钟不操作自动取消订单概要1,创建订单后

SpringBoot操作spark处理hdfs文件的操作方法

《SpringBoot操作spark处理hdfs文件的操作方法》本文介绍了如何使用SpringBoot操作Spark处理HDFS文件,包括导入依赖、配置Spark信息、编写Controller和Ser... 目录SpringBoot操作spark处理hdfs文件1、导入依赖2、配置spark信息3、cont

Oracle Expdp按条件导出指定表数据的方法实例

《OracleExpdp按条件导出指定表数据的方法实例》:本文主要介绍Oracle的expdp数据泵方式导出特定机构和时间范围的数据,并通过parfile文件进行条件限制和配置,文中通过代码介绍... 目录1.场景描述 2.方案分析3.实验验证 3.1 parfile文件3.2 expdp命令导出4.总结

使用JavaScript操作本地存储

《使用JavaScript操作本地存储》这篇文章主要为大家详细介绍了JavaScript中操作本地存储的相关知识,文中的示例代码讲解详细,具有一定的借鉴价值,有需要的小伙伴可以参考一下... 目录本地存储:localStorage 和 sessionStorage基本使用方法1. localStorage

使用JavaScript将PDF页面中的标注扁平化的操作指南

《使用JavaScript将PDF页面中的标注扁平化的操作指南》扁平化(flatten)操作可以将标注作为矢量图形包含在PDF页面的内容中,使其不可编辑,DynamsoftDocumentViewer... 目录使用Dynamsoft Document Viewer打开一个PDF文件并启用标注添加功能扁平化

JavaScript DOM操作与事件处理方法

《JavaScriptDOM操作与事件处理方法》本文通过一系列代码片段,详细介绍了如何使用JavaScript进行DOM操作、事件处理、属性操作、内容操作、尺寸和位置获取,以及实现简单的动画效果,涵... 目录前言1. 类名操作代码片段代码解析2. 属性操作代码片段代码解析3. 内容操作代码片段代码解析4.

Spring使用@Retryable实现自动重试机制

《Spring使用@Retryable实现自动重试机制》在微服务架构中,服务之间的调用可能会因为一些暂时性的错误而失败,例如网络波动、数据库连接超时或第三方服务不可用等,在本文中,我们将介绍如何在Sp... 目录引言1. 什么是 @Retryable?2. 如何在 Spring 中使用 @Retryable

Jenkins中自动化部署Spring Boot项目的全过程

《Jenkins中自动化部署SpringBoot项目的全过程》:本文主要介绍如何使用Jenkins从Git仓库拉取SpringBoot项目并进行自动化部署,通过配置Jenkins任务,实现项目的... 目录准备工作启动 Jenkins配置 Jenkins创建及配置任务源码管理构建触发器构建构建后操作构建任务

SpringBoot使用Apache POI库读取Excel文件的操作详解

《SpringBoot使用ApachePOI库读取Excel文件的操作详解》在日常开发中,我们经常需要处理Excel文件中的数据,无论是从数据库导入数据、处理数据报表,还是批量生成数据,都可能会遇到... 目录项目背景依赖导入读取Excel模板的实现代码实现代码解析ExcelDemoInfoDTO 数据传输

Python使用asyncio实现异步操作的示例

《Python使用asyncio实现异步操作的示例》本文主要介绍了Python使用asyncio实现异步操作的示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋... 目录1. 基础概念2. 实现异步 I/O 的步骤2.1 定义异步函数2.2 使用 await 等待异