Selenium获取微博Cookie(亲测可用)

本文详细介绍如何在Win10环境下,使用Python3.8和Selenium自动化微博登录过程。通过安装Selenium库,下载并配置谷歌浏览器驱动,实现定位用户名、密码输入框及登录按钮,完成自动登录并获取Cookie。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

环境:
1.win10
2.python38
3.安装selenium

pip install selenium

4、安装谷歌/火狐驱动
下载 浏览器驱动,这里我用的谷歌的
https://sites.google.com/a/chromium.org/chromedriver/downloads
下载最新的话,自己本身的谷歌浏览器也要是最新的。点击浏览器的帮助->关于Google Chrome
我是78
然后将下载的驱动放在Python目录下的Script,配置到环境变量里

右键检查,获取用户名和密码的元素的name
利用xpath获取登录按钮(选中元素->检查->右键->Copy->xpath)

# -*- coding: utf-8 -*-
from selenium import webdriver
#调用 Chrom浏览器
import time
driver = webdriver.Chrome()
#访问微博登录界面
driver.get('http://weibo.com/login.php')
#获取用户名和密码的输入框
loginname = driver.find_element_by_name('username')

password = driver.find_element_by_name('password')
#利用xpath获取登录按钮
btn = driver.find_element_by_xpath('//*[@id="pl_login_form"]/div/div[3]/div[6]/a')
#设置两个输入框的值
loginname.send_keys('183xxxxxxxxx')
password.send_keys('xxxxxxxxxx')
#让登录按钮产生点击事件
btn.click()
#获取Cookie
cookies = driver.get_cookies()
#获取到Cookie后进行拼接,以便后面使用
cookie_list =[]
for i in cookies:
	cookie =i['name']+'='+i['value']
	cookie_list.append(cookie)
cookie_str = ';'.join(cookie_list)
print cookie_str
js_code='alert(document.cookie)'
driver.execute_script(js_code)


### 使用 Selenium 获取新浪微博文章内容 为了抓取新浪微博的文章内容,通常需要完成几个主要的任务:启动浏览器实例、登录账号以及定位并提取所需的数据。 对于启动浏览器实例这部分工作,可以通过下面这段 Python 代码来实现: ```python from selenium import webdriver driver = webdriver.Firefox(executable_path="geckodriver.exe") # 或者使用 Chrome 浏览器 # driver = webdriver.Chrome(executable_path='chromedriver.exe') driver.get('https://weibo.com') ``` 上述代码会打开 Firefox 浏览器访问指定网址 `https://weibo.com`[^2]。需要注意的是,在实际操作中应当确保驱动程序文件(如 geckodriver.exe 对于 Firefox 而言)放置在脚本所在的同一目录内;如果不是的话,则需提供完整的路径给 executable_path 参数。 当涉及到具体的微博正文内容抓取时,假设已经完成了必要的登录流程之后,可以利用 XPath 或 CSS Selector 来精确定位网页上的各个元素。例如,要获取某条微博的内容文本,可以根据其 HTML 结构编写相应的选择表达式,并通过 find_element 方法找到对应的 WebElement 对象再调用 text 属性读取出纯文本形式的信息。 这里给出一段示范性的代码片段用于说明这一过程: ```python import time try: # 假设此时已经在某个包含多条微博的页面上了 weibos = driver.find_elements_by_css_selector('.WB_text.W_f14') for i, wb in enumerate(weibos[:5]): # 只打印前五条作为例子 print(f'第{i+1}条微博:') print(wb.text.strip()) except Exception as e: print(e) finally: time.sleep(3) driver.quit() ``` 此段代码尝试查找类名为 `.WB_text W_f14` 的所有 div 标签,这些标签一般用来包裹每一条微博的主要文字部分。遍历所得到的结果列表并将其中的文字信息逐个输出显示出来。最后记得关闭浏览器以释放资源[^1]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值