分享好友 最新动态首页 最新动态分类 切换频道
2017.08.10 Python爬虫实战之爬虫攻防篇
2024-12-27 04:01

1.封锁user-agent破解:

user-agent是浏览器的身份标识,网站就是通过user-agent来确定浏览器类型的。有很多网站会拒绝不符合一定标准的user-agent请求网页,如果网站将频繁访问网站的user-agent作为爬虫的标志,然后加入黑名单该怎么办?

(1)首先在meiju项目下,settings.py的同级目录创建middlewares目录,进入middlewares目录,创建__init__.py,将middlewares目录变成一个Python模块

(2)创建资源文件resource.py和中间件文件customUserAgent.py:

 

(3)将多个浏览器的user-agent放入资源文件resource.py中加入列表待用:

 

#!/usr/bin/env python
#-*- coding: utf-8 -*-
UserAgents = [
"Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; AcooBrowser; .NET CLR 1.1.4322; .NET CLR 2.0.50727)",
"Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; Acoo Browser; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0; .NET CLR 3.0.04506)",
"Mozilla/4.0 (compatible; MSIE 7.0; AOL 9.5; AOLBuild 4337.35; Windows NT 5.1; .NET CLR 1.1.4322; .NET CLR 2.0.50727)",
"Mozilla/5.0 (Windows; U; MSIE 9.0; Windows NT 9.0; en-US)",
"Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0; .NET CLR 3.5.30729; .NET CLR 3.0.30729; .NET CLR 2.0.50727; Media Center PC 6.0)",
"Mozilla/5.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; .NET CLR 1.0.3705; .NET CLR 1.1.4322)",
"Mozilla/4.0 (compatible; MSIE 7.0b; Windows NT 5.2; .NET CLR 1.1.4322; .NET CLR 2.0.50727; InfoPath.2; .NET CLR 3.0.04506.30)",
"Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN) AppleWebKit/523.15 (KHTML, like Gecko, Safari/419.3) Arora/0.3 (Change: 287 c9dfb30)",
"Mozilla/5.0 (X11; U; Linux; en-US) AppleWebKit/527+ (KHTML, like Gecko, Safari/419.3) Arora/0.6",
"Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.2pre) Gecko/20070215 K-Ninja/2.1.1",
"Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9) Gecko/20080705 Firefox/3.0 Kapiko/3.0",
"Mozilla/5.0 (X11; Linux i686; U;) Gecko/20070322 Kazehakase/0.4.5",
"Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.8) Gecko Fedora/1.9.0.8-1.fc10 Kazehakase/0.5.6",
"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.11 (KHTML, like Gecko) Chrome/17.0.963.56 Safari/535.11",
"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_3) AppleWebKit/535.20 (KHTML, like Gecko) Chrome/19.0.1036.7 Safari/535.20",
"Opera/9.80 (Macintosh; Intel Mac OS X 10.6.8; U; fr) Presto/2.9.168 Version/11.52",
]


(4)修改customUserAgent,将资源文件中的user-agent随机选择一个出来,作为Scrapy的user-agent。
#!/usr/bin/env python
#-*- coding: utf-8 -*-

from scrapy.contrib.downloadermiddleware.useragent import UserAgentMiddleware
from meiju100.middlewares.resource import UserAgents

import random

class RandomUserAgent(UserAgentMiddleware):
def process_request(self, request, spider):
ua=random.choice(UserAgents)
request.headers.setdefault('User-Agent',ua)
(5)最后修改settings.py文件,将RandomUserAgent加入DOWNLOADER_MIDDLEWARES

 

 

2.封锁IP破解:在反爬虫中,最容易被发觉的实际上是IP,同一IP短时间内访问同一站点,如果数量少,管理员可能会以为是网吧或者大型的局域网在访问,但是数目多了,很定就是爬虫了

解决这个难题的方法,就是准备一个代理池,从中随机选择一个代理使用:

(1)在之前创建的middlewares目录中,在resource.py文件中加入一个IP池,也就是代理服务器的列表:

(2)创建一个中间件,customProxy.py,这个中间件的作用就是让Scrapy爬取网站时随机使用IP池中的代理:

#!/usr/bin/env python
#-*- coding: utf-8 -*-

import random

from meiju100.middlewares.resource import PROXIES

class RandomProxy(object):
def process_request(self,request,spider):
proxy=random.choice(PROXIES)
request.meta['proxy']='http://%s'%proxy


(3)最后修改settings.py文件,将customProxy加入到DOWNLOADER_MIDDLEWARES:
DOWNLOADER_MIDDLEWARES = {
'meiju100.middlewares.customProxy.RandomProxy':10,
'meiju100.middlewares.customUserAgent.RandomUserAgent': 30,
'scrapy.contrib.downloadermiddleware.useragent.UserAgentMiddleware':None,
'scrapy.contrib.downloadermiddleware.httpproxy.HttpProxyMiddleware':20
}
 
最新文章
谷歌推广是什么?谷歌推广怎么做?
谷歌推广是什么? GoogleAds,原名GoogleAdWords,是Google公司主要的广告服务产品。AdWords是一种在Google搜索结果页展示的按点击付费的关键字广告。 谷歌推广怎么做? 一:外贸网站建设 外贸网站建设是谷
服装品牌策划方案(大全8篇)
随着市场经济的飞速发展,女性的生活品味、生活质量,正在发生着质的飞跃,饰物与服装也实现了完美结合。下面是本站小编为你带来的服装品牌策划方案范文,欢迎参阅。一、专场活动名称:源于自然 演绎时尚——---------专业毕业设计作品展示
该股的最大炒作亮点是什么?潜在题材又是什么?验证成为手机用户,查看该股万隆原创动态分析报告
老铁们,今天行情,如果没有昨天那个会议利好和高开的走势,老白会觉得微涨还不错,加上美股那边已经跌了两天,而A股则是连涨两天,但是现在的情况好像是昨天那波高开低走是消失了一样,一点都没影响到A股,今天来到了3432点,成交量也有1.
国际站店铺装修指南:打造高转化率的视觉营销空间
尊敬的店主,您是否曾遇到这样的情况:您精心挑选了商品,却发现销售效果并不理想,顾客在进入店铺后很快流失?不用担心,今天就为大家分享一份宝贵的指南,教您如何打造一个高转化率的视觉营销空间。第一步:合理规划空间布局第二步:选用
目前有那些信息流广告(5个搜索引擎信息流广告效果和投放体验)
我们致力于提供一个高质量内容的交流平台。为落实国家互联网信息办公室依法管网、依法办网、依法上网的要求,为完善跟帖评论自律管理,为了保护用户创造的内容、维护开放、真实、专业的平台氛围,我们团队将依据本公约中的条款对注册用户和
百度网站收录提交,百度网站收录提交器
快速提升网站可见度与搜索引擎排名的必备技巧一、理解网站收录的重要性百度作为中国最大的搜索引擎,拥有庞大的用户群体和高度的市场占有率。为了确保您的网站能够被更多潜在用户发现并访问,网站是至关重要的一步。正确的提交方式不仅能加
一步到位,利用AI生成超逼真美女写真,轻松上手!
在这个科技飞速发展的年代,AI的应用已经渗透到我们生活的方方面面。其中,AI绘画、AI写真制作更是得到了广泛的关注。不少小伙伴们都曾幻想过,拥有一张属于自己的专属美女写真,甚至可以用它来当做社交平台的头像,或者送给好友作为惊喜。
Python爬虫入门实战(详细步骤)
爬虫这个功能,我个人理解是什么语言都能写的,只要能正常发送 HTTP 请求,将响应回来的静态页面模版 HTML 上把我们所需要的数据提取出来就可以了,原理很简单,这个东西当然可以手动去统计收集,但是
阿里云助力易点天下实现程序化广告+AI多维度效率提升
  12月12日,在第十二届中国企业全球形象高峰论坛现场,联合阿里云正式发布了在程序化广告领域的多项重要突破,这些成果主要基于阿里云平台PAI、通义大模型以及阿里云+云原生技术生成。  市场研究机构MAGNA最新发布的《全球广告预测》
观山湖区第一高级中学环境好不好
摘要:观山湖区第一高级中学的环境综合评价涵盖了校园设施、教学资源、师资力量等多个方面。小编从升学规划师的角度出发,深入分析学校环境对学长和教育质量的重要性,探讨该校在各方面的表现及其对学生未来发展的潜在影响。观山湖区第一高
相关文章
推荐文章
发表评论
0评