本文主要是介绍从入门到入土:学习|实例练手|获取裁判决定网|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自动化操作的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!