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

本文介绍了如何使用Selenium库自动化登录法律学习网站并下载案例文件。通过手动登录获取Cookies,然后模拟浏览器行为进行搜索和下载操作。虽然此方法不属于传统爬虫,但属于基于Selenium的自动化操作。建议在操作中注意合法合规,避免侵犯网站政策。
摘要由CSDN通过智能技术生成

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

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

情况说明

  • 最近在学习法律

  • 想了解一系列的案例

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

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

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

  • 基于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()  # 获取cookies
        jsoncookies = 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 webdriver

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()  # 获取cookies
        jsoncookies = 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自动化操作
  • 手动狗头
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值