python excel 截图_法律行业python高级案例——网络侵权自动化批量取证

c92ab6b43b1f9e042abd9b746356340c.png

互联网领域,侵权行为频发。作为法律从业者,大家其实都知道,网络平台上发现侵权行为的,网络平台应当在收到通知后,在合理的时间内删除侵权内容,否则需和侵权内容发布者承担连带责任。 法律适用大家都知道,但是在实务当中,难点不在于法律条块,而是证据的采集。尤其是对于一些著名商业公司、名人艺人等,侵权内容往往数量庞大,侵权证据难以汇总和统计。依靠传统的人力手段,低效且不切实际。受制于侵权证据的采集手段,往往传统律师在这一块的表现,往往只能通过一些简单的律师函或声明来进行警告,效果并不显著。接下来,笔者会给大家提供一种新的思路,利用python制作信息自动化采集工具,来进行批量证据的采集和呈现。

首先介绍一下我们今天介绍的技术背景:网络信息自动化采集技术。业界俗称为“爬虫技术”,可以通过多种编程语言编写。python作为一种常用的编程语言,将是今天介绍的主角。

首先要摒除一个误解,19年新闻上曝光了许多“爬虫”技术的负面新闻,其实主要都是业务涉嫌违法,爬虫技术本身是一种自互联网发明起就存在的一种非常常见的技术,主要用于网路信息的自动化采集。当然目前一些商业公司也会利用爬虫技术采集一些竞争对手的商业数据,以从事一些不正当竞争,或者一些侵犯著作权的行为,但是这本身跟“爬虫”技术是没有关系的,关键还是要看你用技术的目的。

“爬虫技术”采集技术说穿了,本质上非常简单,主要通过两个方向采集数据:

第一,通过目标网站返回的网站源数据,进行解析提取,得到我们想要的数据。

第二,通过网站的公开数据接口,直接发送请求,获得服务器传送给前端的数据包。

从这里即使不了解技术的朋友们也可以看出,“爬虫技术”采集的数据,都是网站公开数据。到这里,背景絮叨完了,下面进入主题。


本次的案例我们以娱乐圈红人蔡徐坤作为虚拟案例,假使蔡徐坤是我们的客户,在网络上逐渐流传起各种涉嫌恶搞甚至人格侮辱的视频之后,蔡徐坤请求我们作为其律师,提供法律解决方案。大家都知道蔡徐坤有许多恶搞视频出自B站,接下来我们就以B站为例尝试采集一些侵权证据。本文不在技术实现上呈现太多细节,主要是对python取证的一个演示。

第一步:打开bilibili网站,在搜索框内输入“蔡徐坤”进行搜索。进入到搜索结果页,通过前端调试工具,可以很方便找到网站搜索接口为“https://api.bilibili.com/x/web-interface/search/”,同时发现返回了50页的内容,我们接下来就要采集这50页的内容,从而提供给我们和客户作为参考,哪些侵权哪些不侵权,以及响应的侵权情节。这里因为是演示,我们只采集第一页的内容作为展示。

03c8f3889935e47b978b4f8aee1c3e68.png

22a230a30a05bd75597a2dd56e2949ad.png

第二步:编写程序

这里我使用了python+docker模拟浏览器环境的中级懒人爬虫技术,因为对初学者略难,所以不做技术阐述。

    page=1
    session = requests.Session()
    target_url = "https://api.bilibili.com/x/web-interface/search/type?context=&search_type=video" 
                 "&page="+str(page)+"&order=&keyword=%E8%94%A1%E5%BE%90%E5%9D%A4&duration=&category_id=" 
                                    "&tids_1=&tids_2=&__refresh__=true&highlight=1&single_column=0&jsonp=jsonp&callback=__jp2"

    imageUrl="https://search.bilibili.com/all?keyword=%E8%94%A1%E5%BE%90%E5%9D%A4&from_source=nav_search" #&spm_id_from=333.851.b_696e7465726e6174696f6e616c486561646572.10
    response = requests.get(SPLASH_URL + 'render.png?url=' + imageUrl + '&wait=2.5&render_all=1')#获取页面图片 &width=1000&height=1500
    with open('pics/caixukun_'+str(page)+'.png', 'wb') as f:
        f.write(response.content)   #保存截图
    response = session.get(target_url, cookies=cookies,timeout=(20, 20), verify=False)
    result=response.text

这里做了两次request请求,第一次请求,获得了当前网页的截图,并保存在我设置的文件夹里,第二次请求,返回接口的格式化数据。

486dbef0cacbb47733bb425c321195b2.png
这是第一次请求获得的截图

接口返回的数据是一个函数:__jp2()字符串,把首尾这些字符去掉,就可以得到json字符串,里面除了总的结果数目、页码等一些我们已经知道的参数外,还包含了每个视频的数据:

b7d49614bf76f8b4ca8c82342a628f04.png

这个数据就是我们要获取的数据,从上面这张图中,其实大家通过字面意思或者与网站视频详情内容的对比,就可以知道各个字段代表什么含义。我们设置页数为50页,即可获得这50页共一千个视频的类型、视频编号、视频分类、标题、截图、视频连接、标签、上传日期、视频长度、多少人点赞、多少人播放、多少评论等等数据。而这效率是手工远远所不能及的。

到这里,我们基本已经成功了,但是为了下一步的筛选、分析和给客户的呈现,我们可以在做一系列的处理工作。比如,我将所有视频截图都保存在一个文件夹里,用视频编号作为命名。将上图的JSON数据,转化为excel表格,方便自己查看和给客户展示。

15642fde314e265af97d085491b797fc.png
第一页内容中所有视频的截图
#encoding:utf-8
import json
import pandas as pd

with open("caixukun_1.txt","r",encoding='utf-8',errors='ignore') as f:
    data=f.read()
data=data.replace("None",'"none"')
data = data.replace("True", '"true"')
data = data.replace("False", '"false"')

data=json.loads(data,strict=False)
result=data['data']['result']
df = pd.DataFrame(result)
df.to_excel("demo1.xlsx", sheet_name="蔡徐坤", index=False, header=True)

通过上面区区数行代码,我将数据转移到了excel表格中

9fa73657e347c185c118c805fbdb239d.png
python将数据转换为excel表格

至此,证据的采集和整理工作已经初步完成了。当然了,采集只是一种技术手段,这里并没有下载每个视频,但是通过这种方式已经省去了大量律师前期工作,而且提供了强有力的证据素材。更有实力的情况下,甚至可以通过AI方式,自动分析视频内容来确认内容是否侵权,当然目前笔者的能力还做不到……

这里我们用的是人身侵权案件作为举例,著作权侵权、不正当竞争等应用场景,一样可以通过python来进行搜证。 学会了利用pyhon处理网络侵权 ,是不是小伙伴们今后发律师函的时候,可以附带一张要求删除的视频列表呢,或者在侵权之诉中,有了更加详实的数据基础呢?

作者原创,非经授权拒绝转载,违者必究。

作者:虞元坚 上海正策律师事务所 律师 全栈网络工程师/法律大数据应用领域专家。擅长领域:争议解决与诉讼、与软件开发和互联网相关的知识产权、不正当竞争、经济犯罪、科技产业投融资等。欢迎关注法律大数据公众号,和律师朋友们都在使用的随身工具——律师云助理。

30a7082673a6de9851c71dc1abaad721.png
欢迎关注法律大数据公众号和使用律师云助理小程序
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值