中国裁判文书下载:selenium路线

中国裁判文书下载:selenium路线

  • 一、requests路线
  • 二、selenium路线
    • 问题一:namespace error 命名空间错误
    • 问题二:元素的动态变化
    • 问题三、只显示前600份裁判文书
    • 问题四:弹出框的处理
  • 三、selenium路线的缺陷

成功现状:
中国裁判文书下载:selenium路线_第1张图片

一、requests路线

requests路线需要对js进行解密,对js解密时遇到三个参数

docid
cipher
__RequestVerificationToken

这三个参数主要是针对文书列表页面的
中国裁判文书下载:selenium路线_第2张图片
试图在这个页面获取相应的链接,
js解密后,其中ciphertext参数需要感谢大神:越学越害怕
后面的docid和__RequestVerificationToken都非常简单

但是将这些参数传入后,请求仍然出现状态码202或者状态码200但是内容为None
在这里插入图片描述

最后放弃了requests路线

二、selenium路线

问题一:namespace error 命名空间错误

参见《selenium的namespace错误与无法定位:NamespaceError: An attempt was made to create…andUnable to locate elemen》,链接: link.

虽然原因不明,不知道为什么报这个错误,但是这个错误与标签有关,只要不是特殊标签即可
如果存在特殊标签,比如裁判文书网中的下面这个元素的初始标签:diy:lawyee

 
共检索到 1559125 篇文书,显示前600条
刑事复核
中华人民共和国最高人民法院 (2019)最高法刑核87677387号 2019-10-29

[裁判理由]

本院认为,原审被告人刘永权以非法占有为目的,采取暴力手段强行劫取他人财物,其行为已构成抢劫罪,且属于入户抢劫。刘永权虽不具有法定减轻处罚情节,但其犯罪情节较轻,并能如实供述罪行,认罪态度较好,且已将...

刑事审判监督
最高人民法院 (2019)最高法刑申230号 2019-08-14

[裁判理由]

本院经审查认为,你利用担任河南省宁陵县国有林场场长的职务便利,隐瞒已用林场债权顶抵部分应付款项的事实,多列支出予以报销,非法占有公款25200元。原审认定你犯贪污罪的事实清楚,证据确实、充分,定罪准...

刑事审判监督
最高人民法院 (2017)最高法刑申407号 2019-07-05

[裁判理由]

本院认为,原审法院认定申诉人刘十民因成某的丈夫冉某勇盗窃其财物,使用暴力拉走成某所收废品的事实清楚,证据确实充分。刘十民所提成某同意其拉走废品和没有使用暴力的申诉理由不成立。鉴于:(1)冉某勇盗窃刘十民的财物,负有返还财产、赔偿损失的义务。成某所收购的废品,属...

其他
最高人民法院 2019-07-02

[裁判理由]

本院认为,被告人赵志红故意非法剥夺他人生命,其行为已构成故意杀人罪;违背妇女意志,采用暴力、胁迫等手段强奸妇女,其行为已构成强奸罪;以非法占有为目的,采用暴力、胁迫手段劫取他人财物,其行为又构成抢劫...

其他
最高人民法院 2019-06-18

[裁判理由]

本院认为,被告人王洪喜以非法占有为目的,采用暴力手段劫取他人财物,并致人死亡,其行为已构成抢劫罪。犯罪性质恶劣,情节、后果严重,社会危害性大,应依法惩处。第一审判决、第二审裁定认定的事实清楚,证据确...

其他
最高人民法院 2019-06-03

[裁判理由]

本院认为,被告人刘乐以非法占有为目的,采取杀人的暴力手段劫取他人财物,其行为已构成抢劫罪;刘乐故意非法剥夺他人生命,其行为构成故意杀人罪,应依法并罚。刘乐沉迷赌博,杀害妻子,情节恶劣,后果严重;其杀...

其他
最高人民法院 2019-04-09

[裁判理由]

本院认为,被告人于京平以非法占有为目的,采用暴力手段劫取他人财物,又强行与被害人发生性关系,其行为已构成抢劫罪和强奸罪,应依法数罪并罚。于京平在抢劫过程中为制服被害人反抗,用随身携带的斧子多次击打被...

其他
最高人民法院 2019-04-01

[裁判理由]

本院认为,被告人贾谦龙以非法占有为目的,采用暴力手段劫取他人财物,其行为已构成抢劫罪。贾谦龙预谋抢劫,当场杀害一名被害人,犯罪手段残忍,情节、后果严重,罪行极其严重,应依法惩处。第一审判决、第二审裁...

其他
最高人民法院 2019-04-01

[裁判理由]

本院认为,被告人张治刚以非法占有为目的,伙同他人采用暴力手段劫取财物,其行为已构成抢劫罪。张治刚伙同他人经预谋后抢劫无证营运出租车,不顾司机求饶将其杀害,并为掩盖罪证抛尸枯井,犯罪情节恶劣,手段残忍...

其他
最高人民法院 2019-03-31

[裁判理由]

本院认为,被告人张斌以非法占有为目的,采取暴力手段劫取他人财物,其行为已构成抢劫罪。张斌持械入户抢劫并致人死亡,犯罪情节特别恶劣,后果严重,实属罪行极其严重,应依法惩处。第一审判决、第二审裁定认定的...

其他
最高人民法院 2019-03-22

[裁判理由]

本院认为,被告人赵晏飞以非法占有为目的,以暴力手段入户劫取他人财物,致一人死亡,其行为已构成抢劫罪。赵晏飞经预谋,深夜入户抢劫,并持刀捅刺被害人颈部致被害人死亡,犯罪手段残忍,后果严重,情节特别恶劣...

其他
最高人民法院 2019-03-12

[裁判理由]

本院认为,被告人谷宪武以非法占有为目的,使用暴力劫取他人财物,其行为已构成抢劫罪。谷宪武因赌博输钱而实施抢劫,并杀害被害人,犯罪动机卑劣,情节特别恶劣,实属罪行极其严重,应依法惩处。原审判决、高级人...

其他
最高人民法院 2019-01-30

[裁判理由]

本院认为,被告人高中强以非法占有为目的,采用暴力手段劫取他人财物,其行为已构成抢劫罪。高中强抢劫并致人死亡,犯罪手段残忍,犯罪情节特别恶劣,实属罪行极其严重,应依法惩处。第一审判决、第二审裁定认定的...

刑事再审
最高人民法院 (2018)最高法刑再6号 2019-01-03

[裁判理由]

本院认为,原审被告人赵明利在与东北风冷轧板公司的冷轧板购销交易过程中,主观上没有非法占有的目的,客观上亦未实施虚构事实、隐瞒真相的行为,其行为不符合诈骗罪的构成要件,不构成诈骗罪。理由如下:..........

只要出现这种特殊标签就会报namespace error

问题二:元素的动态变化

主要是下一页这个元素,这个元素会动态变化
第一页的下一页元素为:
中国裁判文书下载:selenium路线_第3张图片

//*[@id="_view_1545184311000"]/div[18]/a[8]

第二页的元素为:
中国裁判文书下载:selenium路线_第4张图片

//*[@id="_view_1545184311000"]/div[18]/a[9]

由a[8]变为a[9]

一开始试图通过,对于翻页的次数的变化进行更新,但是失败了,失败原因在于只显示前600份裁判文书,但是由于限定条件的不同,查找的裁判文书数量就不同,导致不好判断
思路是这样的:

# 下一页xpath:
            '''
             if 7<=index <36:
                try:
                    button1 = wait.until(EC.presence_of_element_located((By.XPATH, '//div[@class="left_7_3"]/a[14]')))#问题并不是全为a8
                    time.sleep(1)
                    button1.click()
                except:
                    pass

            elif 36 <= index < 40:
                try:
                    button1 = wait.until(EC.presence_of_element_located((By.XPATH, '//div[@class="left_7_3"]/a[%d]' % int(
                        49-index))))
                    time.sleep(1)
                    button1.click()
                except:
                    pass
            elif index ==40:
                pass
            '''

然后试图通过分段函数进行解决,就是提取查找到的文书数量计算要翻的页数:

中国裁判文书下载:selenium路线_第5张图片

"""目的:减少遍历次数"""
        time.sleep(1)
        condition = browser.find_element_by_xpath('//div[@class="LM_con clearfix"]/div[@class="fr con_right"]/span')
        print(condition.text)  # 不能直接//text()原因不明
        conditions = math.ceil(int(condition.text) / 15)  # 最长12,最短6
        print(conditions)

但是还是不成功!!!!

最后突然想到,下一页 这个元素正好是最后一个元素可以直接使用xpath语法选中最后一个

button_ = wait.until(EC.presence_of_element_located((By.XPATH, '//div[@class="left_7_3"]/a[last()]')))
button_.click()

问题三、只显示前600份裁判文书

需要爬所有,但是只显示前600份
,没有办法直接爬取所有,因为裁判文书网限定了只显示前600份

解决方法:通过限定搜索条件如:
中国裁判文书下载:selenium路线_第6张图片
这个方法是某个博主(暂时想不起来)给的思路,这个博主是通过北京市的律师来限定的,但是我没有找到律师的名字,所有我是通过限定区域,如xx区县
中国裁判文书下载:selenium路线_第7张图片

准确说这样,还是有问题,某些区县仍然超过600,但是相对较少了,即使超过了也不多,通过设置筛选可以进一步等待后续处理,如:

"""目的:减少遍历次数"""
        time.sleep(1)
        condition = browser.find_element_by_xpath('//div[@class="LM_con clearfix"]/div[@class="fr con_right"]/span')
        print(condition.text)  # 不能直接//text()原因不明
        conditions = math.ceil(int(condition.text) / 15)  # 最长12,最短6
        print(conditions)
        if int(condition.text) > 600:
            with open('超过600页.txt','a+',encoding='utf-8')as file:
                file.write('出现超过600条的裁判文书,其所在区域为:'+ str(i.strip()) +',其数量为:'+str(condition.text) + '\n')
            logging.warning('出现超过600条的裁判文书,其所在区域为:'+ str(i.strip()) +',其数量为:'+str(condition.text))

问题四:弹出框的处理

参见《selenium弹窗之windows下载文件弹窗点击方法》 ,使用pyautogui进行键鼠自动化

但是据说还有selenium的内部方法

"""下载无弹窗
profile = webdriver.FirefoxProfile()
profile.set_preference('browser.download.dir', '‪I:\\360下载\\firefox')
profile.set_preference('browser.download.folderList', 2)
profile.set_preference('browser.download.manager.showWhenStarting', False)
profile.set_preference('browser.helperApps.neverAsk.saveToDisk', 'application/zip')
"""

但是不知道为什么我的不行,所以注释掉了

三、selenium路线的缺陷

有两个缺陷,一个是速度慢,另一个是弹出框暂时没有办法解决
后续可能需要使用scrapy+selenium,以及使弹出框不在弹出

你可能感兴趣的:(自动化,爬虫,留存待查)