用python3爬虫-教大家如何解决验证码的问题

Python爬虫-2018年-我破解天眼查和启信宝企业数据爬虫--破解反爬技术那些事情

最近在自己用python3+mongdb写了一套分布式多线程的天眼查爬虫系统,实现了对天眼查整个网站的全部数据各种维度的采集和存储,主要是为了深入学习爬虫技术使用,并且根据天眼查网页的数据结构建立了30个表来存储30个维度的数据,很多做技术的朋友在爬天眼查的时候会遇到以下几个问题,我把我的经历和解决方案分享给大家。(需要爬虫技术交流的朋友欢迎加我qq:2779571288)

#大数据爬虫系统-主要包含这些维度

def get_all_info(soup, cid, company):

passmethod(get_base(soup, cid, company)) # 1、工商信息数据

passmethod(get_partner(soup, cid, company)) # 2、主要成员数据

passmethod(get_gudong(soup, cid, company)) # 3、股东信息数据

passmethod(get_invest(soup, cid, company)) # 4、对外投资数据

#passmethod(get_uplog(soup, cid, company)) # 5、变更记录数据

passmethod(get_report(soup, cid, company)) # 6、公司年报数据

passmethod(get_branch(soup, cid, company)) # 7、分支机构数据

passmethod(get_rongzi(soup, cid, company)) # 8、融资历史数据

passmethod(get_team(soup, cid, company)) # 9、核心团队数据

passmethod(get_touzhi(soup, cid, company)) # 10、投资事件数据

passmethod(get_jingpin(soup, cid, company)) # 12、竞品信息数据

passmethod(get_court_notice(soup, cid, company)) # 13、开庭公告数据

passmethod(get_laws(soup, cid, company)) # 14、法律诉讼数据

passmethod(get_court_report(soup, cid, company)) # 15、法院公告数据

passmethod(get_punish(soup, cid, company)) # 16、行政处罚数据

passmethod(get_zhaobiao(soup, cid, company)) # 17、招标数据

passmethod(get_zhaopin(soup, cid, company)) # 18、招聘数据数据

passmethod(get_swlevel(soup, cid, company)) # 19、税务评级数据

passmethod(get_credit(soup, cid, company)) # 20、进出口信用数据

passmethod(get_certificate(soup, cid, company)) # 21、资质证书数据

passmethod(get_weixin(soup, cid, company)) # 22、微信公众号信息

passmethod(get_pright(soup, cid, company)) # 23、知识产权数据

passmethod(get_soft(soup, cid, company)) # 24、软件著作权数据

passmethod(get_pright2(soup, cid, company)) # 25、作品著作权数据

passmethod(get_site(soup, cid, company)) # 26、网站备案数据

passmethod(get_product(soup, cid, company)) # 27、产品信息数据

passmethod(get_zhuanli(soup, cid, company)) # 28、专利数据数据

print (‘success!‘)

1、天眼查和启信宝哪一个的数据更难爬呢?

其实在准备爬天眼查数据的时候,我对启信宝、企查查类似的网站分布从数据的完整性和数据的更新及时性分析了,结果个人觉得天眼查的数据比其他网站的要完整,数据维度要多一些,数据更新的时候也比较快,所以最后选择了爬取天眼查里面的企业数据。

2、天眼查的30个核心数据维度:

首先整个网站有主要核心数据有以下19大模块:1基本信息、2法人代表、3主要成员、4股东&出资、5变更记录、6公司年报、7司法风险、8舆情事件、9岗位招聘、10商品信息、11网站备案、12商标数据、13专利数据,、14 作品著作权软件著作权、16对外投资关系、17税务评级、18行政处罚、19进出口信用、20企业评级信用等十九个维度的企业数据,如果把这些数据爬下来,并且结构化,实现可以查询可以检索使用,可以导出到excel,可以生成企业报告,那么需要建立数据库来存储这些数据,像这种非结构化的数据我们选择mongdb数据库是最合适的。

  1. 采集速度太频繁了,会被封IP问题 怎么解决

当我们发出去的http请求到天眼查网站的时候,正常情况下返回200状态,说明请求合法被接受,而且会看到返回的数据,但是天眼查有自己的一套反爬机制算法,如果检查到同一个IP来不断的采集他网站的数据,那么他会被这个IP列入异常黑名单,您再去采集它网站数据的时候,那么就永远被拦截了。怎么解决这个问题呢,其实很简单,没有错用代理IP去访问,每一次请求的时候都采用代理IP方式去请求,而且这个代理IP是随机变动的,每次请求都不同,所以用这个代理IP技术解决了被封的问题。

4 天眼查2个亿的数据量怎么存储?需要多少的代理IP

我在写爬虫去爬天眼查的时候,刚开始使用网上的免费或者收费的代理IP,结果90%都被封号,所以建议大家以后采集这种大数据量网站的时候 不要使用网上免费的或者那种收费的IP,因为这种ip几秒钟就会过期,意思就是你没有采集网或者刚刚访问到数据的时候,这个IP就过期了导致你无法采集成功,所以最后我自己搭建了自己的代理池解决了2个亿天眼查数据的采集封IP问题。

5 天眼查网站数据几个亿数据的存储

数据库设计很重要,几个亿的数据存储 数据库设计很重要

我当时花了10天时间吧天眼查爬虫系统全部开发完毕,可以每天爬去百万条数据,30个维度的数据,数据爬下来后主要是数据的存储和管理,数据库的我采用了mongdb,爬虫开发技术我采用了python,几个亿的数据后台管理系统我采用php,我自己架构了分布式架构系统,所以我采集的我采用分布式+多线程+集群的方式,采集速度相当的快!

python3 模拟请求目标网站:

我自己封装了一个方法,把请求头参数拼接后,然后调用requests的get方法直接模拟请求到目标网站,然后根据页面返回的关键词来识别是请求失败或者成功或者是被封了

def get_html(url, mheaders={}, cookies={}):

while True:

try:

proxy = get_proxy() # 获取代理

if not mheaders:

resp = requests.get(url, headers=headers, cookies=cookies, proxies=proxy, timeout=3)

else:

resp = requests.get(url, headers=mheaders, cookies=cookies, proxies=proxy, timeout=3)

if ‘tianyancha‘ in url:

if resp.status_code == requests.codes.ok:

if ‘请输入验证码‘ not in resp.text:

return resp.text

else:

print(‘{}被封了!‘.format(proxy))

elif ‘融资历史‘ in resp.text:

return resp.text

else:

print(‘错误的代码编号:{}, url:{}‘.format(resp.status_code, url))

else:

if resp.status_code == requests.codes.ok:

if ‘小查为‘ in resp.text or ‘基本信息‘ in resp.text:

return resp.text

else:

print(‘错误的代码编号:{}, url:{}‘.format(resp.status_code, url))

except Exception as e:

print(‘url :{},错误:{}‘.format(url, e))

原文地址:http://blog.51cto.com/13968545/2177639

时间: 2024-08-25 04:55:36

用python3爬虫-教大家如何解决验证码的问题的相关文章

python3爬虫--反爬虫应对机制

python3爬虫--反爬虫应对机制 内容来源于: Python3网络爬虫开发实战: 网络爬虫教程(python2): 前言: 反爬虫更多是一种攻防战,针对网站的反爬虫处理来采取对应的应对机制,一般需要考虑以下方面: ①访问终端限制:这种可通过伪造动态的UA实现: ②访问次数限制:网站一般通过cookie/IP定位,可通过禁用cookie,或使用cookie池/IP池来反制: ③访问时间限制:延迟请求应对: ④盗链问题:通俗讲就是,某个网页的请求是有迹可循的,比如知乎的问题回答详情页,正常用户行

python3爬虫中文乱码之请求头‘Accept-Encoding’:br 的问题

当用python3做爬虫的时候,一些网站为了防爬虫会设置一些检查机制,这时我们就需要添加请求头,伪装成浏览器正常访问. header的内容在浏览器的开发者工具中便可看到,将这些信息添加到我们的爬虫代码中即可. 'Accept-Encoding':是浏览器发给服务器,声明浏览器支持的编码类型.一般有gzip,deflate,br 等等. python3中的 requests包中response.text 和 response.content response.content #字节方式的响应体,会

Python3爬虫实战:实战源码+博客讲解

Python Spider 贵有恒,何必三更起五更睡:最无益,只怕一日暴十寒. Python3爬虫实战:实战源码+博客讲解 个人网站 CSDN博客 CSDN爬虫专栏 学习交流群[328127489] 声明 代码.教程仅限于学习交流,请勿用于任何商业用途! 文章首发声明 文章在自己的个人网站首发,其他平台文章均属转发,如想获得最新更新进展,欢迎关注我的个人网站:http://cuijiahua.com/ 目录 爬虫小工具 文件下载小助手 爬虫实战 笔趣看小说下载 百度文库免费文章下载助手_rev1

自动化测试如何解决验证码的问题

注意:本标题的"自动化测试" 包括性能测试 与UI级的自动化测试 经常会被问到如何解决验证码的问题,在此记录一下我所知道的几种方式. 对于web应用来说,大部分的系统在用户登录时都要求用户输入验证码,验证码的类型的很多,有字母数字的,有汉字的,甚至还要用户输入一条算术题的答案的,对于系统来说使用验证码可以有效果的防止采用机器猜测方法对口令的刺探,在一定程度上增加了安全性.但对于测试人员来说,不管是进行性能测试还是自动化测试都是一个棘手的问题. 下面来谈一下处理验证码的几种方法. 去掉验

手把手教你:解决python UnicodeDecodeError: 'gb2312' codec can't decode问题

问题:UnicodeDecodeError: 'gb2312' codec can't decode bytes in position 2-3: illegal multibyte sequence 原因:python在做将普通字符串转换为unicode对象时, 例如:u_string = unicode(string , "gb2312"),如果你的字符串string中有诸如某些繁体字,例如"河滘小学" 中的滘,那么gb2312作为简体中文编码是不能进行解析的,

python3 爬虫小例子

#!/usr/bin/env python# -*- coding: utf-8 -*- import sys,reimport urllib.request,urllib.parse,http.cookiejar class myW3():    def login(self):        'post 数据'        data = {"uid":self.uid,'password':self.password,'actionFlag':'loginAuthenticate

Python3 爬虫(八) -- BeautifulSoup之再次爬取CSDN博文

序 我的Python3爬虫(五)博文使用utllib基本函数以及正则表达式技术实现了爬取csdn全部博文信息的任务. 链接:Python3 爬虫(五) -- 单线程爬取我的CSDN全部博文 上一篇,我们学习了BeautifulSoup这样一个优秀的Python库,必须有效利用起来.那么我们就利用BeautifulSoup4重新实现一次爬取csdn博文的任务. 由于我修改了博客配置,首页主题换了一下,我们基于新的主题查看网页,如下图所示: 同样的,确认要提取的信息,以及博文总页数. 分析网页源码

python面试题之如何解决验证码的问题,用什么模块,听过哪些人工打码平台?

如何解决验证码的问题,用什么模块,听过哪些人工打码平台? PIL.pytesser.tesseract模块 平台的话有:(打码平台特殊,不保证时效性) 云打码 挣码 斐斐打码 若快打码 超级鹰 本文首发于Python黑洞网,博客园同步更新 原文地址:https://www.cnblogs.com/pythonzhichan/p/11428383.html

python3爬虫(4)各种网站视频下载方法

python3爬虫(4)各种网站视频下载方法原创H-KING 最后发布于2019-01-09 11:06:23 阅读数 13608 收藏展开理论上来讲只要是网上(浏览器)能看到图片,音频,视频,都能够下载下来,然而实际操作的时候也是有一定难度和技术的,这篇文章主要讲述各个网站视频资源如何下载. B站视频页面链接: https://www.bilibili.com/bangumi/play/ep118490?from=search&seid=7943855106424547918 首先我们用万能下