首先去买一个代理,根据厂家提供的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 ,运行成功