栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

scrapy项目>代理>验证码问题

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

scrapy项目>代理>验证码问题

一,项目问题:

1、你写爬虫的时候都遇到过什么反爬虫措施,你最终是怎样解决的
    1,通过headers反爬虫:
                解决策略,伪造headers
    2,基于用户行为反爬虫:
                动态变化去爬取数据,模拟普通用户的行为, 使用IP代理池爬取或者降低抓取频率,或 通过动态更改代理ip来反爬虫
    3,基于动态页面的反爬虫:
                跟踪服务器发送的ajax请求,模拟ajax请求,selnium和phtamjs
                或使用selenium + phantomjs 进行抓取抓取动态数据,或者找到动态数据加载的json页面。

    4,验证码 :
                使用打码平台识别验证码

    5,数据加密:
                对部分数据进行加密的,可以使用selenium进行截图,
                使用python自带的pytesseract库进行识别,但是比较慢最直接的方法是找到加密的方法进行逆向推理,

2.你写爬虫的时候 使用的什么框架 选择这个框架的原因是什么?
scrapy
    优势:
        可以实现高并发的爬取数据, 注意使用代理;
        提供了一个爬虫任务管理界面, 可以实现爬虫的停止,启动,调试,支持定时爬取任务;
        代码简洁

    劣势:
        1.可扩展性不强。
        2.整体上来说: 
            一些结构性很强的, 定制性不高, 不需要太多自定义功能时用pyspider即可, 一些定制性高的,需要自定义一 些 功能时则使用Scrapy,

二,代理问题:

1.为什么会用到代理?
    一些网站会有相应的反爬虫措施,例如很多网站会检测某一段时间某个IP的访问次数,
    如果访问频率太快以至于看起来不像正常访客,它可能就会会禁止这个IP的访问。
    所以我们需要设置一些代理服务器,每隔一段时间换一个代理,就算IP被禁止,依然可以换个IP继续爬取。
2.代理怎么使用
    具体代码,请求在什么时候添加的代理
3.代理失效了怎么处理
    事先用检测代码检测可用的代理,每隔一段时间更换一次代理,如果出现302等状态码,则立即更换下一个可用的IP。


三,验证码处理:

1.登陆验证码处理
    图片验证码:先将验证码图片下载到本地,然后使用云打码识别;
    滑动验证码:使用selenium模拟人工拖动,对比验证图片的像素差异,

2.爬取速度过快出现的验证码处理
    设置setting.py中的DOWNLOAD_DELAY,降低爬取速度;
    用xpath获取验证码关键字,当出现验证码时,识别验证码后再继续运行。
3.如何用机器识别验证码**
    对接打码平台
    对携带验证码的页面数据进行抓取
    将页面中的验证码进行解析, 将验证码图片下载到本地
    将验证码图片提交给打码平台进行识别, 返回识别后的结果
    云打码平台使用:

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/918225.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号