利用python爬虫抓取天眼查企业信息数据,反反爬虫的一些实践

需求是这样的:有上千条公司名称,需查询(通过企查查、启信宝、天眼查等途径)对应公司的法人名称、注册时间、注册资本、企业状态、电子邮箱、电话、网址、地址、工商注册号、组织机构代码、统一信用代码、企业类型、纳税人识别号、行业、营业期限、核准日期、登记机关、注册地址、英文名称等信息,如是事业单位还需额外查询举办单位、经费来源、宗旨和业务范围、住所等,如是社会团体需额外查询组织类型、业务主管单位等。 看起来还是蛮简单,思路不过就是将数据逐条读出,利用天眼查查询得到公司信息列表(一条或多条),获取链接,进入公司详细信息页面,搜寻想要的内容即可。 此处使用的是天眼查,就是那个号称「财政部所设国家中小企业发展基金旗下」的天眼查,念起来虽然有点拗口,但确实是我用过最好用的企业工商信息查询平台。天眼查提供的不登陆即可查询,登陆用户每日两次 VIP 功能使用权,秒杀某信宝,某查查。 天眼查的市场看到这篇文章,不要着急呼叫火力,让我吃不了兜着走啊,第一这是帮你打广告,免费的,第二越多人看到越多人用,在不影响、不占用你过多资源的情况下,是好事。 说回正题,其实这里面的重点难点就是天眼查会反爬虫。他们有专门的反爬虫工程师,这家以爬取别人数据起家的公司,怎会让你轻易爬到。 就问你怕不怕。 还不赶快去乖乖买他五毛钱的 API 接口? 道高一尺我高一丈,经过多次尝试,还是给我总结出了一个简便但是实用的小技巧。 这个方法不适合百万及以上量级的爬虫,但是几千几万的数据量,还是够用。经我实测,使用这个方法,我爬1000多条数据,中间没有被打断,没有使用代理 IP,也没有要求输验证码。 具体是怎么操作? 其实很简单。 在谷歌浏览器下载一个定时刷新插件,商店很多,我下的是super auto refresh,然后随便找个天眼查页面,开个定时刷新。 在python里,我用的是Requests,把浏览器cookie复制出来,然后就可以像往常一样通过headers参数模拟浏览器了。 就是这么简单,没什么技术含量。突然想到这个方法,一试,竟然真行。 在其他地方的效果怎么样,还没测试过,以后有机会再用一下。 代码很粗糙,此处就再不贴出。