昊天SEO

scrapy爬虫代理——利用crawlera神器,无需再寻找代理IP–转

摘要: 由于工作需要,利用scrpay采集某个商业网站的数据。但是这个网站反扒非常厉害。因此不得不采用代理IP来做,但是做了几天后几乎能用的代理IP全被禁掉了。而且这种找代理、然后再验证的流程非常麻烦,于是博主想到了第三方平台crawlera.

一、crawlera平台注册

首先申明,注册是免费的,使用的话除了一些特殊定制外都是free的。

1、登录其网站 https://dash.scrapinghub.com/account/signup/

填写用户名、密码、邮箱,注册一个crawlera账号并激活

crawlera账号并激活

crawlera账号并激活

2、创建Organizations,然后添加crawlear服务

然后点击 +Service ,在弹出的界面点击Crawlear,输入名字,选择信息就创建成功了。

创建成功过后点击你的Crawlear名字便可以看到API的详细信息。

二、部署到srcapy项目

1、安装scarpy-crawlera

pip install 、easy_install 随便你采用什么安装方式都可以

pip install scrapy-crawlera

2、修改settings.py

如果你之前设置过代理ip,那么请注释掉,加入crawlera的代理

DOWNLOADER_MIDDLEWARES = {
    # 'scrapy.contrib.downloadermiddleware.httpproxy.HttpProxyMiddleware'110,
    # 'partent.middlewares.ProxyMiddleware'100,
'scrapy_crawlera.CrawleraMiddleware'600
}

为了是crawlera生效,需要添加你创建的api信息(如果填写了API key的话,pass填空字符串便可)

CRAWLERA_ENABLED = True
CRAWLERA_USER = '<API key>'
CRAWLERA_PASS = ''

为了达到更高的抓取效率,可以禁用Autothrottle扩展和增加并发请求的最大数量,以及设置下载超时,代码如下

CONCURRENT_REQUESTS = 32
CONCURRENT_REQUESTS_PER_DOMAIN = 32
AUTOTHROTTLE_ENABLED = False
DOWNLOAD_TIMEOUT = 600

如果在代码中设置有 DOWNLOAD_DELAY的话,需要在setting.py中添加

CRAWLERA_PRESERVE_DELAY = True

如果你的spider中保留了cookies,那么需要在Headr中添加

DEFAULT_REQUEST_HEADERS = {
  # 'Accept''text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8',
  # 'Accept-Language''zh-CN,zh;q=0.8',
  'X-Crawlera-Cookies''disable'
}

三、运行爬虫

这些都设置好了过后便可以运行你的爬虫了。这时所有的request都是通过crawlera发出的,信息如下
更多的crawlera信息请参考官方文档:http://doc.scrapinghub.com/index.html

网站的维护离不开大家的支持鼓励,捐赠让我更有动力走的更远&& 也可以关注我的微信公众号,发布更多的干货
本文网址:https://www.168seo.cn/python/2884.html

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址