首先去買一個代理,根據廠家提供的api,去封裝成一個springBoot服務(當然flask,等任何都可以)。請求就能傳回一個代理ip(如果你不會可以去參考我以前的部落格,在我的部落格中搜springBoot或者flask就有相關的封裝資料-以前買過的是阿布雲的代理)
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsIiNx8FesU2cfdGLwczX0xiRGZkRGZ0Xy9GbvNGL38VZ6l2cskTb1UzbHtkNwJTY1o3VhVTRxVTNplXc1MWYaVjUp9WNSNkW1I0Q2Uja1xUNvNVN1IUYLZjUp9WNBJUaUVkTxE1X0hXZ0xCMx81dvRWYoNHLrdEZwZ1Rh5WNXp1bwNjW1ZUba9VZwlHdssmch1mclRXY39CXldWYtlWPzNXZj9mcw1ycz9WL49zZuBnL5QzNwATNxQTM2IDOwEjMwIzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
完成上述後,我們就開始。首先
安裝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 ,運作成功