链接:https://pan.baidu.com/s/14OMqMjZPeMum8JKfajXZZA
提取码:ma5v
伸手党的福利,这是爬虫的文件,运行qcc.py,另个py文件是用来拖动验证码的。程序需要输入的是一个公司名称的列表文件,由于我也是初学,所以程序写的一般,大家凑合看吧。
下面是爬虫的相关背景以及思路介绍:
同学在证券公司上班,需要企查查的一些信息,他给了我一个公司名称的表格,找我帮忙做一个公司信息的表格,我觉得可以用爬虫解决这个问题,就写了这个程序。
爬虫首先就是看一下网站的结构,随便打开一个企业详情:

电话和邮箱信息都被隐藏了,必须登录才能展示,于是乎,我用Python+selenium写了很多模拟登录的代码,各种跳转,最后使用微博登录(很多爬虫都是这么干的)。写完了发给同学,账号登录就算登录上也不稳定,在我电脑上没毛病的,到他那一堆毛病。电话和邮箱依旧不好使。
此事搁置了许久。。。
直到有一天我发现了新大陆。
这是企查查的手机端网页。目前电脑端的反爬虫已经很完善了,手机端的网页稍弱些,很多网站都有自己的手机端网页,我成功爬取的有:美团、携程、京东。手机端网页的url获取的问题,你直接在手机的浏览器里百度搜索,相关网站,点进去就是网址了。

你没有看错直接进来所有的信息都在这呢。
你以为你用requests就可以了?,url是啥http://m.qichacha.com/firm_6b242b475738f45a4dd180564d029aa9.shtml
后面的这一大串应该是MD5的加密代码,有js基础的同学可以尝试去网页里面弄一个加密代码出来,如果你和我一样是个js代码的小白,只能靠Python+selenium了
看一下上一级的页面:

这一长串是个啥?

python内置的库也可以解决这个问题
from urllibimport parse
id = parse.quote(ID)#可以把汉字转化成网页加密的url,https://www.cnblogs.com/lisa2016/p/11474061.html#参考下大佬的文章
之后你使用get是不是就可以让浏览器访问了?
并不行,会出现404,为啥大概是因为cookies吧
那咋办呢?在访问你的网页前先访问一下企查查主页:http://m.qichacha.com/
一次就好,剩下的你只需要把你要访问的公司名称编码以后一直访问搜索页面然后选择第一个点进去就好了。
好了?万恶的反爬虫又来了。
当你访问了十几个地址之后,就访问不出内容了。太难了。
然后我们怎么做。跳回企查查主页点击主页下方推荐的第一个公司,会出来验证码,验证过后就可以继续爬取了,此处的验证码文件我使用的是,网上一位大佬的,略作改进(增加了拖动时的上下抖动,原有程序拖动距离计算不准确),大概拖动三次以内就可以通过了。
之后就可以快乐的爬虫了。
网友评论