selenium+requests访问微博

时间:2023-03-09 15:52:42
selenium+requests访问微博
import requests
from selenium import  webdriver
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.by import By
from selenium.common.exceptions import TimeoutException
from selenium.webdriver.chrome.options import Options
chorme_option=Options()
chorme_option.add_argument("--disable-gpu")
chorme_option.add_argument("--disable-infobars")

#禁止图片加载
prefs = {
    "profile.default_content_setting_values" : {
        "images": 2
    },"profile.default_content_setting_values.notifications"  :  2
}
chorme_option.add_experimental_option("prefs",prefs)
chorme_option.add_argument('--ignore-certificate-errors') #SSLエラー対策
driver = webdriver.Chrome(chrome_options = chorme_option)
wait=WebDriverWait(driver,10)
print(u"开始登陆")
driver.get("https://www.weibo.com/login.php")

try:
    login_id=wait.until(
        EC.presence_of_element_located((By.XPATH,"//div[@class='login_innerwrap']//input[@id='loginname']"))
    )
    login_id.send_keys("username")
    login_id.send_keys(Keys.ENTER)
    password=wait.until(
        EC.presence_of_element_located((By.XPATH,"//div[@class='login_innerwrap']//input[@type='password']"))
    )
    password.send_keys("password")
    submit=driver.find_element_by_xpath("//a/span[@node-type='submitStates']")
    submit.click()
    req = requests.Session()  # 构建Session
    cookies = driver.get_cookies()  # 导出cookie
    print(cookies)
    driver.get("https://weibo.com/xxxx/profile?topnav=1&wvr=6&is_all=1")
    for cookie in cookies:
        req.cookies.set(cookie['name'], cookie['value'])  # 转换cookies
    test = req.get('https://weibo.com/xxxx/profile?topnav=1&wvr=6&is_all=1')
    print(test.text)
except:
    driver.close()