1、利用cookies登录qq空间获得源码
1.1直接利用python数据格式获得cookie模拟登录
from selenium import webdriver
import time
import requests
driver = webdriver.Chrome()
driver.get('https://xui.ptlogin2.qq.com/cgi-bin/xlogin?proxy_url=https%3A//qzs.qq.com/qzone/v6/portal/proxy.html&daid=5&&hide_title_bar=1&low_login=0&qlogin_auto_login=1&no_verifyimg=1&link_target=blank&appid=549000912&style=22&target=self&s_url=https%3A%2F%2Fqzs.qzone.qq.com%2Fqzone%2Fv5%2Floginsucc.html%3Fpara%3Dizone&pt_qr_app=手机QQ空间&pt_qr_link=http%3A//z.qzone.com/download.html&self_regurl=https%3A//qzs.qq.com/qzone/v6/reg/index.html&pt_qr_help_link=http%3A//z.qzone.com/download.html&pt_no_auth=0')
button = driver.find_element_by_class_name("img_out_focus")
button.click()
time.sleep(6)
cookies = driver.get_cookies()
cookie = [item['name']+'='+item['value'] for item in cookies]
cookie = '; '.join(item for item in cookie)
print(cookie)
'''
携带cookies去获得数据,不携带cookie获得的是一个背景截图
'''
url = 'https://user.qzone.qq.com/1041184302'
headers = {
'cookie':'Loading=Yes; fnc=2; pt4_token=Qg59FqMXPsCidXXYOuWC8lZVUSwQ1My*YkRIkKgRfV0_; p_uin=o1041184302; _qpsvr_localtk=0.5051512900521125; skey=@PPH4Wi1a9; ptcz=e658ec439ad5071fa15bbb54a61e307e8047fa42e02499ce3a60afb7a1dce300; uin=o1041184302; RK=qcpZZstXbP; pgv_si=s3619742720; p_skey=yEYI8NLcbjjk5RwqxqIl*tweQUFV9LTVPBURaTv1y94_; pgv_pvi=5814917120',
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36'
}
html = requests.get(url,headers=headers)
print(html.status_code,html.text)
1.2利用json数据格式,做处理的模式
from selenium import webdriver
import json
driver = webdriver.Chrome()
driver.get('https:www.baidu.com/')
cookies = driver.get_cookies()
jsonCookies = json.dumps(cookies)
'''
第一步:将数据保存到一个json文件当中
先保存后处理
第二步:处理cookies的数据格式获得cookie
'''
with open('qqzone.json','r',encoding='utf-8') as f:
listCookies = json.loads(f.read())
cookie = [item['name'] + '=' + item['value'] for item in listCookies]
cookieStr = '; '.join(item for item in cookie)
2、登录qq邮箱
from selenium import webdriver
import time
from configparser import ConfigParser
obj1 = ConfigParser()
obj1.read('up.ini')
users = obj1.get('username','user')
password = obj1.get('username','password')
driver = webdriver.Chrome()
driver.get('https://mail.qq.com/')
login_frame = driver.find_element_by_id('login_frame')
driver.switch_to.frame(login_frame)
driver.find_element_by_id('switcher_plogin').click()
time.sleep(2)
driver.find_element_by_id('u').send_keys(users)
driver.find_element_by_id('p').send_keys(password)
time.sleep(2)
driver.find_element_by_id('login_button').click()
3、模拟登录淘宝并提交订单
from selenium import webdriver
import time,datetime
def login():
driver.get('https://www.taobao.com/')
driver.find_element_by_xpath('//*[@id="J_SiteNavLogin"]/div[1]/div[1]/a[1]').click()
time.sleep(9)
driver.get(' https://cart.taobao.com/cart.htm')
now = datetime.datetime.now()
print('登陆成功,当前的时间为',now.strftime('%Y-%m-%d %H:%M:%S'))
def buy(times):
while True:
now = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S:%f')
if now >times:
while True:
try:
if driver.find_element_by_xpath('//*[@id="J_SelectAll1"]/div'):
driver.find_element_by_xpath('//*[@id="J_SelectAll1"]/div').click()
break
except:
print('找不到全选按钮')
time.sleep(1)
while True:
try:
if driver.find_element_by_xpath('//*[@id="J_Go"]/span'):
driver.find_element_by_xpath('//*[@id="J_Go"]/span').click()
break
except:
print('找不到结算按钮')
time.sleep(3)
while True:
try:
if driver.find_element_by_xpath('//*[@id="submitOrderPC_1"]/div/a[2]'):
driver.find_element_by_xpath('//*[@id="submitOrderPC_1"]/div/a[2]').click()
break
except:
print('找不到提交订单按钮')
if __name__ == '__main__':
times = input('请输入请购的时间:')
driver = webdriver.Chrome()
login()
buy(times)