1.安装
Python官网:https://www.python.org/downloads/windows/
集成开发环境:https://www.jetbrains.com/pycharm/
chrome官网地址:http://chrome.hrbmby.top/browser.html
chorm驱动器地址:http://chromedriver.storage.googleapis.com/index.html
备注:谷歌浏览器版本和驱动器版本保持一致
2.测试
cmd 执行python ,如果出现python版本,则安装正确,如果安装完成,但是没有版本好,需要在环境变量配置下:D:\Program Files\Python;D:\Program Files\Python\Scripts
注意:这是python安装目录,此处只是举个例子
3.python命令执行文件
python filePath
如果报错:
ModuleNotFoundError: No module named ‘selenium’
解决方案:
1.执行pip install selenium
2.安装完成后执行命令:pip show selenium
3.若无版本信息可能安装不成功,继续安装,如果有信息,继续执行python filePath即可
奉上份上部分源码:
def autoStart(proxyIP):
global globalCnt
globalCnt = 0
try:
proxyUrl = 'http://' + proxyIP
print("本次打开的代理IP为:{}", proxyUrl)
# 使用代理ip
chromeOptions = webdriver.ChromeOptions()
if isUseProxy:
chromeOptions.add_argument(
"--proxy-server=" + proxyUrl) # 一定要注意,=两边不能有空格
driver = webdriver.Chrome(executable_path=r'D:\\chromedriver.exe', options=chromeOptions)
# 随机打开播放放页
urlLen = len(videoMap) - 1
print("map长度:" + str(urlLen))
index = random.randint(0, urlLen)
videoUrl = str(videoMap[index])
driver.get(videoUrl)
time.sleep(2)
if isVideo:
print("isVideo:", isVideo)
# 播放,如果是网页则不需要
# # 某瓜
video = driver.find_element_by_xpath(
"//*[@class='xgplayer-icon']")
webdriver.ActionChains(driver).move_to_element(video).click(video).perform()
time.sleep(15)
print("播放成功-------------------")
# 自动刷新网页F5功能
driver.refresh()
globalCnt += 1
# 页面最小化
driver.minimize_window()
# 关闭页面
driver.close()
except (BaseException, NoSuchElementException, ValueError) as e:
# driver.quit()
print("视频播放失败" + str(e))
pass
def getIPFrom66():
ip_list = []
headers = {
'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9',
'Accept-Encoding': 'gzip, deflate',
'Accept-Language': 'zh-CN,zh;q=0.9',
'Cache-Control': 'max-age=0',
'Connection': 'keep-alive',
'Host': 'www.66ip.cn',
'If-None-Match': 'W/"b077743016dc54409ebe6b86ba7a869b"',
'Upgrade-Insecure-Requests': '1',
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Safari/537.36',
}
for number in range(1, 20):
url = proxyNet + str(number) + ".html"
ip_list.append(getIPList(url, headers))
return ip_list
def getIPList(url, headers):
webData = requests.get(url, headers=headers)
webData.encoding = 'gb2312' # 防止返回的数据乱码
soup = BeautifulSoup(webData.text, 'lxml')
ipAllStr = soup.find_all('tr')
IPList = []
for cnt in range(1, len(ipAllStr)):
ip_info = ipAllStr[cnt]
tds = ip_info.find_all('td') # tr标签中获取td标签数据
ipStr = tds[0].text
# 判断是否为ip正则表达式
ip = re.findall(
"^(1\d{2}|2[0-4]\d|25[0-5]|[1-9]\d|[1-9])\.(1\d{2}|2[0-4]\d|25[0-5]|[1-9]\d|\d)\.(1\d{2}|2[0-4]\d|25[0-5]|[1-9]\d|\d)\.(1\d{2}|2[0-4]\d|25[0-5]|[1-9]\d|\d)$",
ipStr)
if not ip:
continue
else:
ip = tds[0].text + ':' + tds[1].text
IPList.append(ip)
return IPList
def validProxy(proxyIP):
try:
strList = proxyIP.split(':')
ip = strList[0]
port = strList[1]
telnetlib.Telnet(ip, port, timeout=2)
print("proxy:{} 可访问", proxyIP)
return True
except:
print("proxy:{} 不可访问", proxyIP)
pass
return False
isUseProxy = False
isVideo = True
if name == “main”:
global globalCnt
if isUseProxy:
ipList = getIPFrom66()
print(ipList)
for ips in ipList:
for proxy in ips:
print("此次执行的代理IP是:{}", proxy)
isUsable = validProxy(proxy)
if isUsable:
autoStart(proxy)
else:
for i in range(0, 300):
time.sleep(i / 10)
autoStart('')
print("最终播放量:" + globalCnt)