說明
最近需要用到一些HTTP的代理,用於爬蟲去爬取信息,搜索了一些網站,貌似現在這類提供免費代理IP的網站很多,剛好最近看了點vue的視頻,弄個網站練練。
部署到heroku,預覽地址:點擊這里
FastAPI
- 安裝相關依賴
pip install uvicorn fastapi requests bs4 jinja2 aiofiles
- 一個簡單的函數爬取代理
def Spider(cat):
url = '目標網站'
headers = {"User-Agent":"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36"}
try:
res = requests.get(url,headers=headers)
res.encoding = "utf-8"
soup = BeautifulSoup(res.text, 'html.parser')
html = soup.select(’bs4‘)
return html[0]
except:
return 'error'
- 前台點擊按鈕觸發爬蟲,返回數據
@app.get("/{cat}")
async def regist(cat):
if spider(ip) == 'error':
return '服務器繁忙,暫時無法獲取IP,請稍后再試!<br> 需要購買收費服務可聯系:<a href="http://www.xhuosoft.cn">薪火代理</a>'
return str(spider(ip))
VUE
- 引用vue和axios
<script src="https://cdn.bootcdn.net/ajax/libs/vue/2.6.11/vue.min.js"></script>
<script src="https://cdn.bootcdn.net/ajax/libs/axios/0.19.2/axios.min.js"></script>
- 按鈕觸發請求返回數據
@click
- 由於返回的數據是HTML格式的,這里直接用v-html
Heroku
- 注冊賬號
- 下載並安裝heroku-cli
- 創建應用
- 本地代碼
- 上傳代碼
Profile 里面寫 web:uvicorn main:app之類即可
案例地址:998ip