本次项目呢其实也就是为了完成学校的实训项目,但我觉得好不错,所以分享出来。那就废话不多说,直接上。

第一步 爬虫:企查查电脑端,公司的网址信息

企查查电脑端需要用户登录后才能爬取信息,因此事先需要注册账号,使用selenium方法模拟登录

import time
import pandas as pd
from selenium import webdriver
from selenium.webdriver import ActionChainsa = []
def login(driver):driver.delete_all_cookies()url = "https://www.qcc.com/weblogin?back=%2F" #企查查登录网址driver.get(url)time.sleep(10)# 点击密码登入driver.find_element_by_xpath('/html/body/div[1]/div[3]/div/div[2]/div[1]/div[2]/a').click()time.sleep(1)# 输入账号密码driver.find_element_by_xpath('/html/body/div[1]/div[3]/div/div[2]/div[3]/form/div[1]/input').send_keys(username)driver.find_element_by_xpath('/html/body/div[1]/div[3]/div/div[2]/div[3]/form/div[2]/input').send_keys(password)button = driver.find_element_by_xpath('/html/body/div[1]/div[3]/div/div[2]/div[3]/form/div[3]/div/div/div[1]/span')#滑动滑块ActionChains(driver).click_and_hold(button).perform()ActionChains(driver).move_by_offset(xoffset=308, yoffset=0).perform()ActionChains(driver).release().perform()time.sleep(2)driver.find_element_by_xpath('/html/body/div[1]/div[3]/div/div[2]/div[3]/form/div[4]/button/strong').click()# 点击登录time.sleep(0.5)

模拟登录进入后,在搜索栏输入你想要爬取有关信息的公司,我这里输入的是游戏,

 url_a = [#搜索搜索游戏'https://www.qcc.com/web/search?key=%E6%B8%B8%E6%88%8F&p={}&filter=%7B%22rchain%22%3A%5B%7B%22pr%22%3A%22GD%22%7D%5D%7D','https://www.qcc.com/web/search?key=%E6%B8%B8%E6%88%8F&p={}&filter=%7B%22rchain%22%3A%5B%7B%22pr%22%3A%22BJ%22%7D%5D%7D','https://www.qcc.com/web/search?key=%E6%B8%B8%E6%88%8F&p={}&filter=%7B%22rchain%22%3A%5B%7B%22pr%22%3A%22JS%22%7D%5D%7D','https://www.qcc.com/web/search?key=%E6%B8%B8%E6%88%8F&p={}&filter=%7B%22rchain%22%3A%5B%7B%22pr%22%3A%22SH%22%7D%5D%7D','https://www.qcc.com/web/search?key=%E6%B8%B8%E6%88%8F&p={}&filter=%7B%22rchain%22%3A%5B%7B%22pr%22%3A%22ZJ%22%7D%5D%7D','https://www.qcc.com/web/search?key=%E6%B8%B8%E6%88%8F&p={}&filter=%7B%22rchain%22%3A%5B%7B%22pr%22%3A%22SC%22%7D%5D%7D','https://www.qcc.com/web/search?key=%E6%B8%B8%E6%88%8F&p={}&filter=%7B%22rchain%22%3A%5B%7B%22pr%22%3A%22SD%22%7D%5D%7D','https://www.qcc.com/web/search?key=%E6%B8%B8%E6%88%8F&p={}&filter=%7B%22rchain%22%3A%5B%7B%22pr%22%3A%22HB%22%7D%5D%7D','https://www.qcc.com/web/search?key=%E6%B8%B8%E6%88%8F&p={}&searchIndex=%7B%22scope%22%3A%22it%22%7D']num = 1for r in url_a:for j in range(1,6):driver.get(r.format(j))for i in range(1,20):d = driver.find_element_by_xpath('/html/body/div[1]/div[2]/div[2]/div[4]/div/div[2]/div/table/tr[{}]/td[3]/div/a[1]'.format(i))print('第{}条----->>>'.format(num),d.get_attribute("href")) #获取公司网址num += 1a.append(d.get_attribute("href"))time.sleep(5)da = pd.DataFrame(a)da.to_csv('./data.csv')
def main():while True:option = webdriver.ChromeOptions()option.add_experimental_option('excludeSwitches', ['enable-automation'])  # webdriver防检测option.add_argument("--disable-blink-features=AutomationControlled")option.add_argument("--no-sandbox")option.add_argument("--disable-dev-usage")option.add_experimental_option("prefs", {"profile.managed_default_content_settings.img_zeng": 2})driver = webdriver.Chrome(executable_path=r"D:\chrome\chromedriver.exe",options=option)driver.set_page_load_timeout(15)login(driver)if __name__ == '__main__':username = '13101351758'#用户名password = 'chhlh0911'#密码headers = {#请求头'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.182 Safari/537.36'}main()

以上是爬取公司网址的代码,部分结果如下:

接下来是爬取上列网址的公司的信息

import requests
import time
from lxml import etree
import pandas as pd
import csv
base_url = 'https://www.qcc.com/web/search?key='#搜索栏网址
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:86.0) Gecko/20100101 Firefox/86.0'
}
data = pd.read_csv('./data.csv',header=None)
data.columns=['id','url']
a = []
f = open('企查查.csv','w',newline='')
writer  = csv.writer(f)
title = ['统一社会信用代码','名称','类型','所属地区','法定代表人','注册资本','成立日期','营业期限','经营范围']
def getCompanyData(url,num):try:response = requests.get(url, headers=headers)response.encoding="utf-8"html = etree.HTML(response.text)try:shehui_xinyong=html.xpath('//*[@id="cominfo"]/div[2]/table/tr[1]/td[2]/text()')[0]#信用代码except:shehui_xinyong = Nonetry:gongsi_name = html.xpath('//*[@id="cominfo"]/div[2]/table/tr[1]/td[4]/text()')[0]#名称except:gongsi_name = Nonetry:qiyeleix = html.xpath('//*[@id="cominfo"]/div[2]/table/tr[5]/td[2]/text()')[0]#企业类型except:qiyeleix = Nonetry:suoshudiqu = html.xpath('//*[@id="cominfo"]/div[2]/table/tr[6]/td[4]/text()')[0]#所属地区except:suoshudiqu = Nonetry:fadingdaibiaoren = html.xpath('//*[@id="cominfo"]/div[2]/table/tr[2]/td[2]/div/span[2]/span/a/text()')[0]#法定代表人except:fadingdaibiaoren = Nonetry:zhuceziben =  html.xpath('//*[@id="cominfo"]/div[2]/table/tr[3]/td[2]/text()')[0]#注册资本except:zhuceziben = Nonetry:chengliriqi = html.xpath('//*[@id="cominfo"]/div[2]/table/tr[2]/td[6]/text()')[0]#成立日期except:chengliriqi = Nonetry:yingyeqixian = html.xpath('//*[@id="cominfo"]/div[2]/table/tr[5]/td[4]/text()')[0]#营业期限except:yingyeqixian = Nonetry:jingyingfanwei = html.xpath('//*[@id="cominfo"]/div[2]/table/tr[10]/td[2]/text()')[0]#经营范围except:jingyingfanwei = Nonewriter.writerow([shehui_xinyong,gongsi_name,fadingdaibiaoren,zhuceziben,qiyeleix,yingyeqixian,suoshudiqu,jingyingfanwei,chengliriqi])print('第{}条------->>>'.format(num), gongsi_name)num += 1time.sleep(30)except:time.sleep(10)print('错误')pass
for j,i in enumerate(data.url):getCompanyData(i,j+1)
f.close()
# print('successlly')

爬取部分结果如下:

我当时保存的方式没有设置正确,后来实在不知如何改进,若有知道的伙伴可以告知。

为了完成后续的任务,便从同学那里要来了正确的信息表,展示部分信息如下:

以上爬虫部分的任务已经完成,接下来就是生成营业执照

第二步 生成企业营业执照

将爬取的信息,通过模板的位置定位,将信息填进正确的位置

模板照片如下:

# coding:utf-8
from PIL import Image, ImageDraw, ImageFont
import pandas as pd
word_size = 18  # 文字大小
font = ImageFont.truetype("./simsun.ttc",25)
font_1 = ImageFont.truetype("./simsun.ttc",20)
data = pd.read_csv('./data_qiye.csv',encoding='gbk')for i in range(0,120):im1 = Image.open('./model.jpg')draw = ImageDraw.Draw(im1)strs  =data.loc[i]draw.text((650, 568), strs['统一社会信用代码'], (0, 0, 0), font=font_1)for id,_p in enumerate(['企业名称','企业类型','注册地址','法定代表人','注册资本','成立日期','营业期限']):print(strs[_p])draw.text((345,640+id*40),strs[_p], (0, 0, 0),font=font)len_d = len(strs['经营范围'])for lo in range(0,int(len_d/30)+1):try:draw.text((345,925+lo*33), strs['经营范围'][lo*30:lo*30+30], (0, 0, 0), font=font_1)except:passif lo==7:breakim1.save('./imgs/{}.jpg'.format(strs['统一社会信用代码']))

最后生成的图大致如下:

在位置确定上还有不足,所以信息没有与前面对齐,由于我的能力还不算太好,试了好几次还是不行,所以最后放弃。不过所有代码基本就是这样,需要改进的直接在上面改就行。

数据集上传在资源里面 data_qiye.csv

pillow生成企业营业执照相关推荐

  1. 企业营业执照OCR识别

    对于互联网平台来说,网站之多犹如鲫鱼过江,用户粘度越高网站的发展才能越长久.营业执照识别技术能降低企业在进行实名认证时的难度,中安营业执照识别推进平台认证自动化.便捷化,使网站平台在众多网站中增加竞争 ...

  2. Python图片处理PIL/pillow/生成验证码/出现KeyError: 和The _imagingft C module is not installed...

    近期在用Python开发自己的博客.须要用到Python生成验证码,当然肯定要用到Python的图形处理库PIL,由于我用的是windows. 所以在安装好pil之后就開始写,就依照题目所说出现了Th ...

  3. 使用pillow生成分享图片

    重复性的工作一定要交给计算机去做! 有时候要为公司做一张宣传用的分享图片,很简单交给设计通过ps.AI做好就行了,但是如果一个网站要为每个用户生成一张专属的分享图片,如果让设计师一张一张的去做,哪设计 ...

  4. 【python】使用python中的pillow生成gif动态图

    在之前的文章中,介绍了使用imageio生成gif动态图片,十分方便,简单,容易上手. 我发现pillow这个库也可以生成gif动态图片. 1.需求 使用pillow将一下4张图合成gif: 2.代码 ...

  5. python使用pillow生成纯透明png图片

    pip install pillow from PIL import Imageif __name__ == '__main__':# 创建image = Image.new(mode='RGBA', ...

  6. 自动生成企业画像(标签)

    1.目录 1.目录 2.前言 3.算法细节 1)企业信息数据准备 2)候选业务词袋 3)算法过程 4.算法改进 1)拓展数据源 2)有监督训练 2.前言 企业画像在企业推荐中是必不可少的一个环节,在客 ...

  7. Python随机生成企业及统一社会信用代码

    import random import string# 随机生成企业名称 def generate_company_name():prefix = ['ABC', 'XYZ', 'ACME', 'B ...

  8. Python自动生成企业合同

    1.背景 工作中经常会需要做大量的合同,不复杂,也就是在合同模板里修改几个合同要素,但是必须打开合同一页一页的翻找修改,合同太多或者手头其他事情纠缠在一起的时候,难免会漏掉.最近在互联网上看到一个类似 ...

  9. 把个人网站封装生成百度小程序的方法分享

    现在百度大力发展移动端,所以百度智能小程序有一定的流量优势,还可以进入信息流和贴吧推广,同时还能获得网站快速收录权限,昨天已封装成功,今天跟大家分享把个人网站封装生成百度小程序的方法. 一.生成小程序 ...

  10. 《企业级ios应用开发实战》一1.3 iOS企业应用程序的发布

    1.3 iOS企业应用程序的发布 除了上述特点,iOS企业应用还有一个显著的特点,就是应用程序的发布方式.iOS企业应用具有两种发布方式:In-House和Ad-Hoc,它们并不经过苹果公司的App ...

最新文章

  1. Swift - AppDelegate.swift类中默认方法的介绍
  2. xgboost源码 要看的
  3. 自动换行的draw2d标签
  4. 今天买书了《JavaScript 权威指南》英文版
  5. 用实例讲解Spark Sreaming--转
  6. .NET打包工具怎么注册 .dll文件??
  7. 解决许可证兼容性问题,Ubuntu 内核将内置 ZFS
  8. Oracle增加字段
  9. h5-video3 解决html5 audio iphone,ipd,safari不能自动播放问题
  10. 突然间电脑的复制粘贴不能用了???
  11. 基于android的有声听书系统
  12. 【C#语言】具名类型和匿名类型
  13. E4A MPChart折线图 曲线图
  14. 分布式算法 - Raft算法
  15. 用python对文件内容差异对比
  16. 【U8+】用友U8同一个账套使用了好多年,需要将以前年度进行分离、删除。
  17. 一文带你了解JDBC
  18. 万万想不到,线程居然被饿死了
  19. 第一次到这里,踩个脚印
  20. Python中使用警告:UserWarning: loadtxt: Empty input file: “/home/***/**/*.txt“的解决方案

热门文章

  1. Word、Excel、PPT使用技巧与实战方法大全(2013完整版) 免积分下载
  2. 微信安装包 11 年膨胀 575 倍?QQ安装包800M?谁在抢你的手机内存?
  3. Keil芯片安装包下载
  4. Matlab猜数字游戏GUI界面设计
  5. abaqus算出来的转角单位是什么_abaqus单位等等
  6. 华为透露成长秘诀:信息化建设铸就发展奇迹
  7. HackerRank难题记录
  8. windows server 2012 安装 VC14(VC2015) 安装失败解决方案
  9. 10.【Axure 10 】菜单-文件-导入RP文件
  10. 实施工程师的发展前景