codition 8

一.在scrapy框架中如何设置代理(两种方法)?

1.在中间键添加
middleware.py

from scrapy import signals
from fake_useragent import UserAgent
 
# 代理 
class Proxy_MD(object):
    def process_request(self,request,spider):
        request.meta['proxy'] = 'http://58.218.198.170:18569'
 
 
# User-Agent
class Random_UA(object):
    def process_request(self,request,spider):
        ua = UserAgent().random
        request.headers.setdefault('User-Agent',ua)

然后在settings中配置这个中间件

SPIDER_MIDDLEWARES = {
    'pirctures.middlewares.Proxy_MD': 543,
'pirctures.middlewares.Random_UA': 542,
}

2.在爬虫文件中添加


import scrapy
 
class TestSpider(scrapy.Spider):
    name = 'test'
    # allowed_domains = ['www.baidu.com']
 
    # 本地爬虫配置文件
    custom_settings = {
        'DOWNLOADER_MIDDLEWARES' : {
           'Test_C.middlewares.Random_UA': 1,
            # 'Test_C.middlewares.Proxy_MD':2
        },
 
    }
 
    def start_requests(self):
        urls = 'https://www.baidu.com/s?wd=ip'
        proxy = 'http://58.218.198.169:13759'
        yield scrapy.Request(url=urls,callback=self.parse,meta={'proxy':proxy})
 
 
    def parse(self, response):
        print('*_' * 20)
        print(response.css('.c-gap-right::text').extract())
        print(response.css('.c-span21.c-span-last.op-ip-detail td::text').extract()[1].strip())
        print(response.status)
        print('*_'*20)


####二.scrapy中如何实现限速?

自动限速设定:

在setting.py开启相关扩展:

AUTOTHROTTLE_ENABLED = True
设定爬取速度:

DOWNLOAD_DELAY = 1 #单位为秒

####三,接触过哪些反爬机制?如何处理?

反爬机制
robots协议、UA、封IP、验证码、动态数据加载、数据加密、token处理:

处理方法
配置不遵守robots协议、
伪装User-Agent、代理IP更换、打码平台对验证码识别、selenium处理或者使用抓包工具去抓取
动态加载的AJAX请求数据包、按照已知的各种加密方式进行解密、
去前台页面进行token值的查找手动放入请求携带的参数中


主 可以读写
从 只能读
主如果垮掉了 把从变成主 需要一定的时间

系统部署
部署在哪里? 阿里云 移动的机房 电信的机房 机房进去都要身份证
怎么部署的啊? 画图 带个本子 (本子要有东西在上面)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容