pua肆虐?运用python进行图片文字识别得到“所谓pua导师”热卖作品列表,然后用分布式爬虫全网采集,起底各pua!

pua肆虐?运用python进行图片文字识别得到“所谓pua导师”热卖作品列表,然后用分布式爬虫全网采集,起底各pua!_第1张图片

回 复 潘多拉 送 你 一 个 特 别 推 送

用数据揭穿pua的真面目,python 奥利给!

pua肆虐?运用python进行图片文字识别得到“所谓pua导师”热卖作品列表,然后用分布式爬虫全网采集,起底各pua!_第2张图片

用python可以做好多好玩的事情,比如说我之前做的,新型冠状病毒疫情之下,采集央视网新联频道,生成词云,看民众最当下最关注什么。用python的requests模块采集央视网新联频道,制做新型冠状病毒战役季热点词云。
 

当然这还不是最好玩的,我之前有发表过文章情感操控术——如何不被渣男控制。为了切实表达对pua不了解,担心上当受骗的群体的关切,我特意用python写了一个脚本,采集某站点兜售的所谓各种导师所有课程的截图。然后用baidu-aip工具包解析出导师的所有作品,然后再经过一些骚操作,处理成“从作品到人到惯用套路的”故事型“pdf文档(开始想直接放在服务器上,部署成小姐姐只要输入某人微信号或微博号或者十张朋友圈常用照,就给出他是pua概率的应用,后来备案太麻烦,因此作罢)。

pua肆虐?运用python进行图片文字识别得到“所谓pua导师”热卖作品列表,然后用分布式爬虫全网采集,起底各pua!_第3张图片先看看部分效果。
上代码。

#!/usr/bin/python# -*- coding: UTF-8 -*-from requests_html import HTMLSessionfrom pymongo import MongoClientimport refrom urllib.parse import urlparseimport timefrom baidu.client import BaiduClientfrom baidu.api import BaseBaiduAPIfrom aip import AipOcrimport os,logging

LOG_FILENAME='test.log'logging.basicConfig(filename=LOG_FILENAME,level=logging.INFO)client=MongoClient('127.0.0.1',27017)#连服务器db=client['pua']#连数据库collection=db['pua_recognize_detail']#连数据表session=HTMLSession()#感觉比requests好用# print('开始执行')result=collection.count_documents({})if not result:
    r=session.get('请求地址')#想动手亲测 可关注公众号”cnpuaer“,回复”pua测试地址获取“
    link_list=r.html.links
    new_list=[]
    for link in link_list:
        if 'product' in str(link.strip()):
            link_real=str(link.strip()).replace('..','请求地址的根域名')
            # print('\n')
            # print(link_real)
            # new_list.append(link_real)
            collection.insert_one({'url':link_real})
    result=collection.find()else:
    result=collection.find()HAS_FINISHED=True#这里改成False可以将数据入库,同时把图片下载到当前pua目录下 做完此步,此处改成True不再执行if not HAS_FINISHED:
    insert_list=[]
    item_number=0
    for url in result:
        item_number+=1
        rs=url['url']
        result=session.get(rs)
        content=result.html.xpath('//div[@class="viewtxt"]')
        for c in content:
            content_html=c.html            # pattern=re.compile('\]?\/\>|\]?\>.*?\<\/img\>',re.DOTALL)
            # pattern=re.compile('')
            pattern = ".[^\=\"]+\.(?i:jpg|gif|png|bmp)"
            images = re.findall(pattern, content_html)
            img_dict = {}  # 用于写库
            if images:
                img_list=[]#用于检测重复
                i=0
                for img in images:
                    i+=1
                    img_url=img.lstrip('"')
                    if img_url not in img_list:
                        istr = str(i)
                        img_list.append(img_url)
                        if 'http' not in img_url:
                            img_url = '请求地址的根域名'+img_url
                        filename=urlparse(img_url)[2] if urlparse(img_url)[2] else ''
                        print(filename)
                        if filename:
                            filename_list=filename.split("/")
                            cur_filename=filename_list.pop()
                            Picture_request = session.get(img_url)
                            if Picture_request.status_code == 200:
                                with open("pua/"+cur_filename, 'wb') as f:
                                    f.write(Picture_request.content)
                        img_dict[istr]=img_url
            content_text=c.text
            content_text=content_text.replace('\n','|',1)
            content_text=content_text.replace('\n','')
        # print('当前在处理第{}条数据,即将入库的数据是{}'.format(str(item_number),{'url':rs,'content_text':content_text,'content_pics':img_dict}))
        insert_list.append({'url':rs,'content_text':content_text,'content_pics':img_dict})

        try:
            collection.insert_one({'url':rs,'content_text':content_text,'content_pics':img_dict})
        except Exception as e:
            print(e)
    print('执行结束')
    exit()#至此数据全部写库class ParseImage(object):

    @staticmethod
    def get_file_content(filePath):#读取文件内容,定义成staticmethod就可以当普通函数来用
        # print(filePath)
        with open(filePath, 'rb') as fp:
            return fp.read()

    @staticmethod
    def write_on_txt(content, filePath, linefeed="1"):#写识别出的文本到文档
        with open(filePath, "a",encoding='utf-8') as file:#不指定编码写入会乱码 a模式是往里追加 如果直接w会覆盖
            try:
                file.write(content)
            except:
                print("写入错误")
            else:
                if linefeed != "1":
                    file.write("\n")if __name__ == '__main__':
    ins=ParseImage()
    # print(ins.parse_zhihu())
    # 获取开始时间
    start = time.time()#记录脚本开始运行时间
    """ 你的 APPID AK SK """
    APP_ID = '百度开发者平台给你的APP_ID'
    API_KEY = '百度开发者平台给你的API_KEY'
    SECRET_KEY = '百度开发者平台给你的SECRET_KEY'

    # client = BaiduClient(APP_ID, API_KEY, SECRET_KEY)
    client = AipOcr(APP_ID, API_KEY, SECRET_KEY)

    # 图片路径
    img_path = r"D:\guruyu\python\famou\test\pua"  # 反斜杠要带r,正斜杠不用,仅做参考,根据你本地环境指定
    # 文本路径
    txt_path = r"D:\guruyu\python\famou\test\orc.txt"#同上

    options = {}

    # 遍历所有文件(使用 os.walk 方法)
    for root, dirs, files in os.walk(img_path):
        for file in files:
            # 文件所在目录和文件名连接
            file_dir = os.path.join(root, file)
            ins.write_on_txt("=============================", txt_path, "0")
            ins.write_on_txt("文件名:" + file_dir, txt_path, "0")
            # 只对png和jpg做处理
            if file_dir[-4:] == ".png" or file_dir[-4:] == ".jpg":
                # 传入图片
                image = ins.get_file_content(file_dir)
                """ 调用通用文字识别, 图片参数为本地图片 """
                a = client.basicGeneral(image, options)
                # 查看返回的结果
                # print(a['words_result'])
                if 'words_result' in a:
                    for dic in a['words_result']:
                        print(dic['words'])
                        logging.info(dic['words'])
                        ins.write_on_txt(dic['words'], txt_path, "0")

    end = time.time()#结束时间
    print('Running time: %1.2f Seconds' % (end - start))#记录脚本运行时间

最终根据上面截图的作品或者导师做关键字,然后分布式爬虫去百度结果页、新浪微博等地方检索信息并最终汇兑,形成涵盖各所谓”导师“的作品及其惯用套路的内容丰富的pdf文档。知道对手底牌你才晓得怎么对他”一击毙命“,正所谓知已知彼百战不殆是也。欢迎关注公众号”cnpuaer“,回复关键字”防渣手册“下载。感谢阅读。(部分图片来自互联网,侵删)

CnPuaer∣一个专注效率脱单的公众号

pua肆虐?运用python进行图片文字识别得到“所谓pua导师”热卖作品列表,然后用分布式爬虫全网采集,起底各pua!_第4张图片

长按,识别二维码,加关注

你可能感兴趣的:(pua肆虐?运用python进行图片文字识别得到“所谓pua导师”热卖作品列表,然后用分布式爬虫全网采集,起底各pua!)