1.用scrapy爬取企查查时,由于访问频繁,需要通过验证码才能访问页面;


这个问题很明显是因为我们的cookie太单一了,被对方记住了,那么我们就要采取两种方式来解决,第一种是关闭cookie,也就是我们常说的下面的这种,让对方无法识别,第二种就是建立一个cookie池,这也算是真正的理解了什么是cookie池,因为每个cookie都是只能爬取指定的数据量的

解决方案:

网站通过用户的Cookie信息对用户进行识别与分析,所以要防止目标网站识别我们的会话信息。

在Scrapy中,我们可以在爬虫项目的setting.py文件中进行设置

将setting.py中的下面两行代码里的

COOKIES_ENABLED = False 的注释去掉即可。

2.爬虫过程中遇到重定向问题
爬取赶集网次数可能太多,爬虫时网址被重定向到验证码页面。

2018-08-31 16:59:55 [scrapy.downloadermiddlewares.redirect] DEBUG: Redirecting (302) to <GET https://callback.ganji.com/firewall/valid/2093665982.do?namespace=ganji_zufang_detail_pc&url=http%3A%2F%2Fbj.ganji.com%2
Ffang1%2F3541105246x.htm%3Fadtype%3D3> from <GET http://bj.ganji.com/fang1/3541105246x.htm?adtype=3>

解决方法:

1.在Request中将scrapy的dont_filter=True,因为scrapy是默认过滤掉重复的请求URL;

2.添加headers;
3.

2.设置下载延时

部分网站通过分析我们的爬取频率对爬虫进行禁止或限制,所以我们需要控制爬取时间间隔。

在Scrapy中同样是在setting.py文件中进行设置。

在这里,我设置爬取间隔为 0.7。

3.设置用户代理池

在setting.py中添加用户代理池

添加好用户代理池之后,还需要创建下载中间件。在C:/Mycrawl/Mycrawl下新建Myuseragent.py文件,在里面编辑

import random
from Mycrawl.settings import UAPOOL
from scrapy.contrib.downloadermiddleware.useragent import UserAgentMiddlewareclass MyUAmid(UserAgentMiddleware):def __init__(self, user_agent=''):self.user_agent = user_agentdef process_request(self, request, spider):Myua = random.choice(UAPOOL)print('当前使用的User-Agent是%s'%Myua)request.headers.setdefault('User-Agent', Myua)

然后在settings.py中将该文件设置为爬虫项目的下载中间件,

# Enable or disable downloader middlewares
# See https://doc.scrapy.org/en/latest/topics/downloader-middleware.html
DOWNLOADER_MIDDLEWARES = {#'Mycrawl.middlewares.MycrawlDownloaderMiddleware': 543,'scrapy.contrib.downloadermiddleware.useragent.UserAgentMiddleware':2,'Mycrawl.MyUserAgent.MyUAmid':1,
}
其中的 DOWNLODER_MIDDLEWARES 就是下载中间件的意思。

设置好之后就可以运行爬虫文件了。

爬虫过程中的反爬问题相关推荐

  1. python网络爬虫的方法有几种_Python网络爬虫过程中5种网页去重方法简要介绍

    一般的,我们想抓取一个网站所有的URL,首先通过起始URL,之后通过网络爬虫提取出该网页中所有的URL链接,之后再对提取出来的每个URL进行爬取,提取出各个网页中的新一轮URL,以此类推.整体的感觉就 ...

  2. Python爬虫六:字体反爬处理(猫眼+汽车之家)-2018.10

    环境:Windows7 +Python3.6+Pycharm2017 目标:猫眼电影票房.汽车之家字体反爬的处理 ---全部文章: 京东爬虫 .链家爬虫.美团爬虫.微信公众号爬虫.字体反爬.Djang ...

  3. 爬虫过程中解决html乱码和获取的文本乱码问题

    爬虫过程中解决html乱码和获取的文本乱码问题 response1 = requests.get(url=detail_url, headers=headers) responseText1 = re ...

  4. Python爬虫过程中验证码识别的三种解决方案

    在Python爬虫过程中,有些网站需要验证码通过后方可进入网页,目的很简单,就是区分是人阅读访问还是机器爬虫.验证码问题看似简单,想做到准确率很高,也是一件不容易的事情.为了更好学习爬虫,后续推文中将 ...

  5. 网吧服务器网络维护教程,网管员维护服务器过程中的反黑技巧

    网管员维护服务器过程中的反黑技巧 作者:佚名 编辑:李莲 2007-08-17 11:09 评论 分享 1.打补丁 微软的作风就是三天一小补,五天一大补,漏洞太多,补一点就好一点,使用"开始 ...

  6. 爬虫-网站地址及反爬机制

    爬虫-网站地址及反爬机制 1.安居客:https://cd.zu.anjuke.com/fangyuan/wuhou/x1/ - requests 2.贝壳找房:https://cd.zu.ke.co ...

  7. Python网络爬虫过程中,构建网络请求的时候,参数`stream=True`的使用

    点击上方"Python共享之家",进行关注 回复"资源"即可获赠Python学习资料 今 日 鸡 汤 海内存知己,天涯若比邻. 大家好,我是皮皮. 一.前言 前 ...

  8. (伪)Python爬取猫眼电影(反反爬虫过程中遇到的坑)

    Python爬取猫眼电影 1.打开一个猫眼电影的URL,例如本月的较火的电影<毒液:致命守护者>http://maoyan.com/films/42964 直接F12,查看审核元素,发现上 ...

  9. 爬虫之常见的反爬手段和解决思路

    1 服务器反爬的原因 爬虫占总PV(PV是指页面的访问次数,每打开或刷新一次页面,就算做一个pv)比例较高,这样浪费钱(尤其是三月份爬虫). 三月份爬虫是个什么概念呢?每年的三月份我们会迎接一次爬虫高 ...

最新文章

  1. XLearning - 深度学习调度平台
  2. java 扫描包框架_在Android中实现类似Spring的软件包扫描
  3. C语言经典算法 1-10
  4. c语言程序设计第二次网上作业,吉大21春《C语言程序设计》在线作业二题目【标准答案】...
  5. 当PowerDesigner的工具栏不见时候该怎么调出来
  6. 开发库比较(3) - Mobile Web 开发 - Sencha, jquerymobiel, phonejs, jqtouch, jqmobi
  7. jQuery幸运大转盘_jQuery+PHP抽奖程序的简单实现
  8. ICEM使用经验与网格划分错误分析
  9. Jlink 下安装JLINK驱动
  10. 红皮书再总结——实例四
  11. 方差分析分类及SAS实现代码
  12. 华为云ECS服务器中通过docker部署ELK-kibana
  13. nginx反向代理非80端口/nginx反代非80端口
  14. NUCLEO-F767ZI以太网功能实现笔记本电脑不开盖开机
  15. Python基于PC版微信实现机器人
  16. 提供3Dmax,Zbrush,C4D,MAYA,MD,进来看看
  17. 基于中科院-CASIA-GaitDatasetB步态图像轮廓数据库的步态周期检测与步态角度特征
  18. Java乐谱_如何在java中创建一个简单但结构良好的乐谱表(乐谱)?
  19. GMap.NET入门详细教程【4】--------为控件添加事件,在鼠标单击时打点
  20. win10系统自带截图快捷键

热门文章

  1. 《果壳中的C# C# 5.0 权威指南》 (01-08章) - 学习笔记
  2. 五个寓言故事令你受益匪浅
  3. 机器学习笔记之——降维(二)主成分分析(PCA)
  4. 适合普通人的量化投资
  5. 图像质量 测试软件,图像质量测试.pdf
  6. 浅谈 ECMAScript 和 JavaScript
  7. 客户留存8大技巧 真正提高投资回报率
  8. English语法_介词 - of
  9. 2009-2017年中国水资源数据可视化(python+pyecharts)
  10. c++ 输入、输出和文件