版权声明:Meter.Bulacn https://blog.csdn.net/qq_41500222/article/details/83313195
#首席那安装selinium
from selenium import webdriver
import time
from lxml import etree
import json
#添加显示等待
from selenium.webdriver.support.ui import WebDriverWait
#根据条件寻找对应节点
from selenium.webdriver.support import expected_conditions as EC
import requests
import re
import urllib.parse
import urllib
header = {
"User-Agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36",
}
#设置无头浏览器
# options=webdriver.ChromeOptions()
# options.set_headless()
#创建浏览器驱动
# driver = webdriver.Chrome(
# executable_path='/home/lbc/Documents/chromedriver',
# )
# # options=options
# driver.get('http://699pic.com/soundtrack/?sem=1&sem_kid=206316&sem_type=3')
# #获取cookie
# cookies = driver.get_cookies()
# cookie_dict = {}
# for cookie in cookies:
# cookie_dict[cookie['name']] = cookie['value']
# # print(cookie_dict)
# #导入鼠标移入
# from selenium.webdriver import ActionChains
# #用xpath解析并拖拽鼠标进行点击
# # 点击登录
# element = driver.find_element_by_xpath('/html/body/div[1]/div/div[1]/div/a[2]')
# #将鼠标移动到指定的节点
# ActionChains(driver).move_to_element(element).perform()
# #将鼠标移动到指定的节点并且点击该节点(单击)
# ActionChains(driver).move_to_element(element).click(element).perform()
# # 手机号登录
# element = driver.find_element_by_xpath('//*[@id="alert-action-login"]/div/div/div/div[1]/div[2]/p[2]/a[1]')
# #将鼠标移动到指定的节点
# ActionChains(driver).move_to_element(element).perform()
# #将鼠标移动到指定的节点并且点击该节点(单击)
# ActionChains(driver).move_to_element(element).click(element).perform()
# driver.find_element_by_name('phone').send_keys('15326245558')
# #隐式等待
# driver.find_element_by_name('passwd').send_keys('q134679.')
# # 输入账号密码点击登录
# element = driver.find_element_by_xpath('//*[@id="alert-action-login"]/div/div/div/div[2]/div[1]/div/label[3]/a')
# #将鼠标移动到指定的节点
# ActionChains(driver).move_to_element(element).perform()
# #将鼠标移动到指定的节点并且点击该节点(单击)
# ActionChains(driver).move_to_element(element).click(element).perform()
def qingqiu(url):
response = requests.get(url,headers=header)
# response.encoding = 'gbk'
print(response.status_code)
a= etree.HTML(response.text)
b = a.xpath('//div[@class="audio-list"]/ul[@class="soundEffect-block clearfix"]/li')
for i in b:
title = i.xpath('.//a[@class="soundEffect-name"]/text()')
link = i.xpath('.//a[@class="soundEffect-name"]/@href')[0]
tlink = urllib.parse.urljoin(response.url,link)
# print(title,tlink)
music(tlink)
def music(url):
response = requests.get(url,headers=header)
print(response.status_code)
a= etree.HTML(response.text)
title = a.xpath('//div[@class="photo-content fl"]/h1/text()')
# print(title)
# print(response.text)
b = a.xpath('//div[@class="audio-body"]/div[@class="audio-bodyBg"]/div[@class="audio-box clearfix"]')
for i in b:
mp = i.xpath('./audio[@id="audio0"]/source/@src')
# print(mp3)
for lin in mp:
song(lin,title)
def song(t,title):
response = requests.get(t,headers=header)
# r = re.compile(".*-(.{1,15})",re.S)
# c = r.findall(response.url)[0]
# print(c)
with open('{}.mp3'.format(title),'wb+') as f:
f.write(response.content)
if __name__ == '__main__':
for i in range(3,4):
url = 'http://699pic.com/media/soundtrack-so-%s-0-0-0-0-0-0-0.html'%str(i)
qingqiu(url)