python 根据单位名称爬取单位统一社会信用代码

前两天,刘先生跟我提了这样一个需求:我有一个excel表格,里面包含了一些单位名称,我需要获取它们对应的18位“统一社会信用代码”。由于单位数量较多,一个一个去企查查、天眼查或者统一社会信用代码官网查询比较耗时,而且都是重复性劳动耗着一个人不划算。刚好我会爬虫,就想写一段代码来用机器代替人工完成这个任务。

写爬虫之前先选择工具,我这里使用的是Selenium。Selenium是一个Web的自动化测试工具,最初是为网站自动化测试而开发的,类型像我们玩游戏用的按键精灵,可以按指定的命令自动操作,不同是Selenium 可以直接运行在浏览器上,它支持所有主流的浏览器(包括PhantomJS这些无界面的浏览器)。Selenium 可以根据我们的指令,让浏览器自动加载页面,获取需要的数据,甚至页面截屏,或者判断网站上某些动作是否发生。Selenium 自己不带浏览器,不支持浏览器的功能,它需要与第三方浏览器结合在一起才能使用。本文中浏览器使用的是Chrome,所以需要提前下载安装ChromeDriver。下载地址:http://chromedriver.storage.googleapis.com/index.html 。需要根据自己的浏览器版本下载对应的ChromeDriver。将下载好的文件解压,然后放到你使用的python解释器相同的目录下即可。

在经过反复调试后我的代码完成了。代码分为4个部分,分别为程序主入口,读取excel、结果写入excel和爬虫。

首先看一下读取excel部分

def get_excel_data(sheetName, row, col=0):
    '''
    从excel中读取data
    :param sheetName: 工作表名称
    :param row: 行号
    :param col: 列号,默认取第0列
    :return: 工作表sheetName的第row行col列的值
    '''
    excelDir = './data/单位名称.xls'
    # 创建工作薄
    workBook = xlrd.open_workbook(excelDir)
    # 选择工作表
    workSheet = workBook.sheet_by_name(sheetName)
    return workSheet.cell(row, col).value

需要说明2点:
1.excel表的行和列是从0开始计算的;
2.“./data/单位名称.xls”是在当前目录下有个data文件夹,里面放置的是要读取的excel文件

其次,结果写入

def set_excel_data()
  • 6
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值