爬取摄图网里的 音乐和视频 摄图网模拟登陆

版权声明: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)

猜你喜欢

转载自blog.csdn.net/qq_41500222/article/details/83313195