文书网自上线以来一直是大家热衷于攻坚的网站。我因公司的业务,也爬取了该网站,再爬取一段时间后,获得了大概30w的数据,发现文书网又更新了

2020.08.31-----可以看到文书网直接显示需要登录后才能查看,

登录操作以使用代码模拟成功。返回success

def login_with_requests():s = requests.session()api = "https://account.court.gov.cn/api/login"headers = {"Accept": "application/json, text/plain, */*","Accept-Encoding": "gzip, deflate, br","Accept-Language": "zh-CN,zh;q=0.9","Host": "account.court.gov.cn","Origin": "https://account.court.gov.cn","Referer": "https://account.court.gov.cn/app","User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.83 Safari/537.36","X-Requested-With": "XMLHttpRequest","Sec-Fetch-Dest": "empty","Sec-Fetch-Mode": "cors","Sec-Fetch-Site": "same-origin"}proxies = {"http": Ip_proxy()['proxies'],"https": Ip_proxy()['proxies']}params = {"username": "手机号","password": "加密后的密码,可通过F12获取到","appDomain": None}response = s.post(api, data=params, proxies=proxies, headers=headers)print(response.json())

登录成功返回。

{'code': '000000', 'data': None, 'message': '操作成功', 'success': True}

通过requests 提交用户名密码的方式获取到的cookie

{'code': '000000', 'data': None, 'message': '操作成功', 'success': True}
<RequestsCookieJar[<Cookie HOLDONKEY=YWI0ZDZmMDYtN2Q5Ny00MDM3LTgzYjktYmJlMmU4M2UxNGY5 for account.court.gov.cn/>]>

但是问题来了,这个cookie显然是不够的,还是拿不到后续的数据。求大佬指教下,这种方式登录成功后,该如何与后续的数据请求搭上关联,使之拿到文书数据。

--------------------------------------------分割线

还有一种使用selenium的方式登录,

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.support.wait import WebDriverWaitfrom settings import FILE_DIR
from tools.UtilsHelper import PageID, Ip_proxydef login_with_selenium():# Chrome add optionsoptions = webdriver.ChromeOptions()options.add_argument("start-maximized")  # 窗口最大化# 隐藏"Chrome正在受到自动软件的控制"options.add_argument('disable-infobars')# 使用IP代理跳过反爬策略,频繁爬取会触发验证码机制options.add_argument(f'--proxy-server={Ip_proxy()["proxies"]}')# 设置selenium不加载图片,提高爬取效率# prefs = {"profile.managed_default_content_settings.images": 2}# options.add_experimental_option("prefs", prefs)options.add_argument("service_args = ['–ignore-ssl-errors = true', '–ssl-protocol = TLSv1']")# 无浏览器模式,无浏览器模式无法定位元素# options.add_argument("--headless")options.add_argument('--disable-gpu')# Exclude the collection of enable-automation switchesoptions.add_experimental_option("excludeSwitches", ["enable-automation"])# Turn-off useAutomationExtensionoptions.add_experimental_option('useAutomationExtension', False)# driverdriver = webdriver.Chrome(options=options, executable_path=FILE_DIR + "/chromedriver.exe")# set navigator.webdriver = undefined,防止被反爬识别为自动化webdriverdriver.execute_cdp_cmd("Page.addScriptToEvaluateOnNewDocument", {"source": """Object.defineProperty(navigator, 'webdriver', {get: () => undefined})"""})wait = WebDriverWait(driver, 20)# set userAgent# driver.execute_cdp_cmd('Network.setUserAgentOverride', {"userAgent": RandomUa()})driver.execute_cdp_cmd('Network.setUserAgentOverride', {"userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.83 Safari/537.36"})url = f'https://wenshu.court.gov.cn/website/wenshu/181217BMTKHNT2W0/index.html?pageId={PageID()}&s8=02'# 打开网页driver.get(url)# 刷新driver.refresh()# 点击登录frame = wait.until(EC.presence_of_element_located((By.XPATH, '//*[@id="contentIframe"]')))driver.switch_to.frame(frame)# 手机号输入框click_phone = wait.until(EC.presence_of_element_located((By.XPATH, '/html/body/app-root/div/app-login/div/div/form/div/div[1]/app-mobile-input/div/input')))# actions.move_to_element(click).click().perform()# click.click()click_phone.send_keys("你的手机号")time.sleep(1)# 密码输入框click_pwd = wait.until(EC.presence_of_element_located((By.CSS_SELECTOR, 'input.ng-invalid')))click_pwd.send_keys("你的密码")time.sleep(1)  # 等一秒是最优选择,短了网络错误# 登录按钮button_login = wait.until(EC.element_to_be_clickable((By.CSS_SELECTOR, '.custom-button')))button_login.click()# 必须加上表单退出,否者就是死元素无法定位driver.switch_to.default_content()# 新版改变,导致无法直接进入刑事,需要点击返回首页# click 返回首页click = wait.until(EC.presence_of_element_located((By.XPATH, '/html/body/div/div/div/div[1]/diy:lawyee/div/a')))click.click()# get cookiecookie_list = driver.get_cookies()cookie_dict = {}# cookie dictfor cookie in cookie_list:cookie_dict[cookie['name']] = cookie['value']cookie_string = "; ".join([str(x) + "=" + str(y) for x, y in cookie_dict.items()])# 浏览器关闭driver.close()return cookie_string

---------------------------分割线,2020.10.13日更新--------------------------

经评论区大佬提醒,改用Firefox浏览器进行尝试,果然可以成功实现login,并且可以使用无头模式且不报错,获取到的cookie失效时间未知,使用该cookie获取详情数据可以成功,感谢评论区大佬

# -*- coding:utf-8 _*-
"""
@file: LoginAuthCookie.py
@time: 2020/09/09
@site:
@software: PyCharm # code is far away from bugs with the god animal protectingI love animals. They taste delicious.┏┓      ┏┓┏┛┻━━━┛┻┓┃      ☃      ┃┃  ┳┛  ┗┳  ┃┃      ┻      ┃┗━┓      ┏━┛┃      ┗━━━┓┃  神兽保佑    ┣┓┃ 永无BUG!   ┏┛┗┓┓┏━┳┓┏┛┃┫┫  ┃┫┫┗┻┛  ┗┻┛
"""
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
import timefrom settings import FILE_DIR, LOG_DIRclass WenshuLoginAuth:'''文书网登录cookie获取'''def __init__(self):profile = webdriver.FirefoxProfile()profile.set_preference("general.useragent.override","Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:81.0) Gecko/20100101 Firefox/81.0")# firefox无头模式options = webdriver.FirefoxOptions()options.add_argument('--headless')options.add_argument('--disable-gpu')options.add_argument('window-size=1200x600')# 使用IP代理跳过反爬策略,频繁爬取会触发验证码机制# options.add_argument(f'--proxy-server={Ip_proxy()["proxies"]}')# options.add_argument("service_args = ['–ignore-ssl-errors = true', '–ssl-protocol = TLSv1']")self.driver = webdriver.Firefox(executable_path=FILE_DIR + '/geckodriver.exe',service_log_path=LOG_DIR + '/geckodriver.log',firefox_profile=profile,options=options)

后面就是利用driver找到输入框进行用户名密码登录,拿到登录后的cookie就可以进行数据爬取了。只是文书网更新速度太快,可能很快就会修复这个,且爬且珍惜啊

2020.8.31,文书网又更新啦,这次直接加入了登录后才能查看。相关推荐

  1. 爬虫修正:裁判文书网20200901更新增加登录系统

    爬虫修正:裁判文书网20200901更新增加登录系统 一.登录系统的增加 二.增加登录函数 三.一个比较纠结的地方 一.登录系统的增加 导致需要登录,直接是无法进入了.以往可以直接进入具体的类别如 现 ...

  2. 2023-5裁判文书网数据库更新

    裁判文书网日更新量相对以前有所减少,目前更新量近1.4亿条,做了一些分析报告,研究了一些类案-- 持续更新中,为一些法律工作者提供一些辅助. 相关事宜,之前的博文有相应介绍.

  3. 2020-11-08裁判文书网数据python爬虫更新下载

    2020年9月1日更新 文书网2020年8月31日晚更新之后就需要手机注册验证登录了,所以,账号是个问题. 分析 1. 登录 比较简单哦,主要难题是多账号的登录及session的更新维护. 2.其它 ...

  4. 中国裁判文书网----最最最详细爬虫----基于各位大佬的帖子---更新一版----步骤不详细?你打死我 本爬虫编写日期:2019-07-30

    目录 一.吐槽 二.参考 三.爬取目标以及爬取思路 1.爬取目标 2.爬取思路 四.破解(重头戏) 1.发现加密参数得过程 1.1 暴力请求 案件详情页 2.破解案件列表页请求参数 2.1 解密num ...

  5. 裁判文书网 爬虫 升级最新版本0.7 更新时间2020-12-17

    接上一篇文件:裁判文书网 爬虫 最新更新2020-08-12  https://blog.csdn.net/myhot/article/details/108046389 本次升级主要已支持写入mys ...

  6. 2021-04-01裁判文书网数据python爬虫更新下载

    长期持续更新数据 2020-11-08裁判文书网数据python爬虫更新下载添加链接描述 截至3月已从数据库中下载1亿1200万条裁判文书数据,有需要数据的伙伴可以(。・∀・)ノ゙嗨前台QQ7900- ...

  7. 202106裁判文书网采集思路 理论无视更新

    严正声明:本文章是以学习和交流为目的,文书及其相关数据的知识版权完全归属文书网及权利所有者,严禁利用本文所提流程和数据进行盈利.相关代码及数据请在24小时以内删除.作者不承担由于非法使用程序和数据造成 ...

  8. 重装战姬服务器维护,重装战姬2020年10月1日更新维护公告_重装战姬2020年10月1日更新了什么_玩游戏网...

    在重装战姬手游中2020年10月1日更新了什么呢?本次更新的的情况内容又是什么呢?不清楚的小伙伴们,接下来就让我们一起来看一下吧! 亲爱的各位团长: 我们将于以下时间,对全平台服务器实施维护,进行游戏 ...

  9. 裁判文书网 爬虫 最新更新2020-08-12

    该程序采用Node模拟人工操作,自动获取页面内容,并将获取的数据保存到excel中(每1000条保存一个文件,可以设置保存的条数).excel文件内容如下图: 声明:本文章是以学习和交流为目的,数据源 ...

最新文章

  1. 【干货】机器学习经典书PRML 最新 Python 3 代码实现,附最全 PRML 笔记视频学习资料...
  2. 好像最近买了很多东西
  3. UA MATH567 高维统计专题1 稀疏信号及其恢复7 LASSO的预测误差与变量选择一致性
  4. 记一次对某企业的渗透测试实战
  5. 光纤通道如何过渡到SAN
  6. iOS-Runtime知识点整理
  7. android studio for android learning (二十五 )activity的启动模式详解与标志位简析
  8. Makefile 编写规则
  9. 如何使用虚拟机下载和安装Centos
  10. 服务器ping不通,但是远程桌面可以连接上
  11. C语言提取字符对应的ASCAl,ascall码对照表(ASCII码表)
  12. 程序员面试简历注意事项
  13. 金蝶二次开发 的新手体会
  14. ao史密斯定时设置_下图ao史密斯热水器的预约定时怎么用?-史密斯热水器怎么接线...
  15. HTTPSConnectionPool(host=‘finance.yahoo.com‘, port=443解决方案
  16. Cannot read lifecycle mapping metadata for artifact org.apache.maven.plugins:mav问题
  17. parseObject和fromObject的区别
  18. 新观影神器(安卓、iOS端)
  19. shadow使用方法
  20. 微信的移动生态闭环是怎么回事

热门文章

  1. 记录关于利用txt文件划分训练集、测试集与验证集
  2. switch双属性php,thinkphp-条件判断-SWITCH标签
  3. wps将批量数字转换成条形码_excel表格怎么把数据转换条形码-WPS表格中怎么把数字还原成条形码,本来是条形码的。...
  4. 安卓巴士总结了近百个Android优秀开源项目
  5. UV汞灯-UVLED光源能量计、强度计通用品牌-WKM-UV1
  6. 计算机二级word安装包,是否有word 2010安装包,计算机二级需要,怎么安装不了呢?...
  7. P0.9COB小间距LED显示技术的优势。
  8. spring mvc前端验证代码生成器
  9. 基于PHP+MySQL实验室预约管理系统的设计与实现
  10. 洛谷月赛T2 P6858[深海少女与胖头鱼]题解