scrapy代理池-爬取

首先去买一个代理,根据厂家提供的api,去封装成一个springBoot服务(当然flask,等任何都可以)。请求就能返回一个代理ip(如果你不会可以去参考我以前的博客,在我的博客中搜springBoot或者flask就有相关的封装资料-以前买过的是阿布云的代理)

完成上述后,我们就开始。首先

安装faker(一个模拟数据的框架) 

编写python代码

import faker
import requests


class ProxyMiddleware(object):
    # 定义一个请求之前的方法
    def process_request(self, request, spider):
        # 随机获取一个代理
        url = 'http://192.168.31.23:5000/random'
        proxy = requests.get(url).text
        # request.meta['proxy'] = 'https://' + '46.4.202.33:7000'
        ua = faker.Faker(locale='zh_CN').chrome()
        request.headers.setdefault('User-Agent', ua)
        return None

写好之后,将代码复制到middlewares.py中

 打开scrapy的setting

在文件中搜索downloader

将刚刚写到middlewares.py中的class类名复制下来(或者记下来-叫做ProxyMiddleware),写进去。

后面的543代表的是优先级,scrapy支持,多个不同的 代理接口一起爬取。

ok,配置完毕,就运行吧。

scrapy crawl 爬虫的name ,运行成功

猜你喜欢

转载自blog.csdn.net/qq_38403590/article/details/119930443