版权声明:本文为博主原创文章,注明出处,随意转载。 https://blog.csdn.net/IMW_MG/article/details/88602427
热烈庆祝失踪人口回归
代理IP获取接口
-
接口地址:
http://api.faceme.site/proxy/
-
请求方法:
GET
-
接口参数:
-
limit
单次代理IP提取数量,默认提取全部,int类型
-
scheme
代理方式http
或https
,默认不限 -
oversea
境内代理0
或境外代理1
,默认不限 -
type
返回文本格式,json
或lines
,默认以json
形式返回
-
返回数据示例
http://api.faceme.site/proxy/?limit=3&scheme=http&oversea=0
{
"code": 200,
"data": [
{
"area": "",
"collect_time": "2019-03-16 13:43:56",
"oversea": 0,
"proxy": "170.239.84.24:3128",
"scheme": [
"http"
],
"verify_time": "2019-03-16 15:39:48"
},
{
"area": "",
"collect_time": "2019-03-16 09:41:34",
"oversea": 0,
"proxy": "119.28.31.29:8888",
"scheme": [
"http"
],
"verify_time": "2019-03-16 15:40:13"
},
{
"area": "",
"collect_time": "2019-03-16 05:01:34",
"oversea": 0,
"proxy": "159.203.14.121:8000",
"scheme": [
"http"
],
"verify_time": "2019-03-16 15:38:10"
}
],
"message": "获取到了 3 个代理IP"
}
http://api.faceme.site/proxy/?limit=5&oversea=0&type=lines
47.95.201.41:3128
120.210.219.74:80
139.224.187.136:3128
39.134.67.207:8088
112.85.52.180:8118
代理IP来源与验证
- 代理IP来源
西刺
代理免费代理IP89
代理免费代理IP无忧
代理免费代理IP66IP
代理免费代理IPFate0
开源代理IP米扑
付费代理IP
- 代理IP验证
- 境内代理IP验证站点:
2019.ip138.com/ic.asp
- 境外代理IP验证站点:
httpbin.org/ip
- 验证通过条件
- 设置代理IP后能正常访问目标站点
- 访问目标站点延迟不超过
3s
- 单个代理IP每
5min
进行一次验证
- 验证方式不严谨,通过以上站点验证通过的代理IP也不能确保能正常访问另外的站点
- 境内代理IP验证站点:
代理IP测试站点—Hao6v电影下载网刷评分
hao6v.com
站点经DNS查询,主机地址为Los Angeles, California, United States
,是境外主机,则选用境外代理IP用于测试- 本代理池代理IP测试结论:代理IP可用率超过
90%
- 附上测试代码,
Hao6v站点
刷电影评分程序
# -*- coding: utf-8 -*-
# @Author : Leo
import sys
import logging
import requests
from bs4 import BeautifulSoup
from urllib.parse import parse_qs, urlparse
logging.basicConfig(level=logging.INFO, # 最低输出
format='%(asctime)s %(filename)s[line:%(lineno)d] %(levelname)s %(message)s',
datefmt='%d %b %H:%M:%S')
class Hao6vScore:
"""
hao6v站点刷票
"""
def __init__(self, movie_url):
self.movie_url = movie_url
self.base_headers = {
'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36'}
# 提交评分的接口
self.submit_score_url = 'http://www.hao6v.com/e/enews/'
# 提交评分需要的参数
self.score_params = {'enews': 'AddInfoPfen', 'classid': '', 'id': '',
'doajax': 1, 'ajaxarea': 'showpf', 'fen': 0}
self._init_score_info()
def submit_one_score(self, score, proxy):
"""
利用代理IP提交一次评分
:param score:
:param proxy:
:return:
"""
if all([self.score_params.get('classid'), self.score_params.get('id')]):
self.score_params['fen'] = score
try:
score_resp = requests.get(url=self.submit_score_url, params=self.score_params,
headers=self.base_headers, proxies=proxy)
logging.info('点赞成功,当前评分: %s,使用代理IP: %s' % (score_resp.text.split('|')[0], proxy))
except requests.exceptions.RequestException as err:
logging.info('点赞失败,失败原因: %s' % err)
else:
raise ValueError('未获取到classid或id参数,无法点赞')
def _init_score_info(self):
"""
获取点赞信息
:return:
"""
try:
resp = requests.get(url=self.movie_url, headers=self.base_headers)
if resp.status_code == 200:
soup = BeautifulSoup(resp.text, 'html.parser')
iframe_tag = soup.find('iframe', {'id': 'ifc', 'src': True})
if iframe_tag is not None:
classid_id_url = iframe_tag.get('src')
parse_result = parse_qs(urlparse(url=classid_id_url).query)
self.score_params['classid'] = parse_result.get('classid')[0] \
if parse_result.get('classid') is not None else ''
self.score_params['id'] = parse_result.get('id')[0] \
if parse_result.get('id') is not None else ''
except requests.exceptions.RequestException:
pass
def get_proxy(limit=20, oversea=0, scheme=None):
"""
获取代理IP
:param limit: 提取代理IP数量
:param oversea: 是否境外IP,0境内,1境外
:param scheme: 代理方式
:return:
"""
target_proxy_list = None
# 代理IP获取接口
proxy_url = 'http://api.faceme.site/proxy/'
proxy_params = {'limit': limit,
'oversea': oversea,
'scheme': scheme}
proxy_resp = requests.get(url=proxy_url, params=proxy_params)
if proxy_resp.status_code == 200 and proxy_resp.json().get('code') == 200:
target_proxy_list = [{'http:': 'http://' + item.get('proxy'),
'https': 'https://' + item.get('proxy')} for item in proxy_resp.json().get('data')]
return target_proxy_list
if __name__ == '__main__':
# 用于测试的hao6v站点《纯洁心灵-逐梦演艺圈》影片链接
test_movie_url = 'http://www.hao6v.com/gq/2018-08-09/CJXLZMYYQ.html'
scorer = Hao6vScore(movie_url=test_movie_url)
while True:
# 每次提取10个代理IP,选用境外代理,代理方式为http
proxy_list = get_proxy(limit=10, oversea=1, scheme='http')
try:
for each_proxy in proxy_list:
scorer.submit_one_score(score=5, proxy=each_proxy)
except ValueError:
sys.exit(0)