linux上用selenium登录新浪微博,获取用户关注的用户id
环境:ubuntu、hadoop2.7.3
1.安装selenium
命令:sudo pip install selenium 更新:sudo pip install -U selenium
2.查看firefox版本
命令:firefox -v
3.没有查出版本的话请安装firefox
命令:sudo apt-get install firefox
注意:这步可能会报错,一般是apt需要更新(修改/etc/apt/source.list 修改后sudo apt-get update然后在安装firefox)
4.驱动firefox需要有第三方的驱动geckodriver,网上下载
5.需要将下载到的geckodriver解压放到/usr/local/bin目录下
命令:
sudo cp geckodriver-v0.14.0-linux64.tar.gz /usr/local/bin/geckodriver-v0.14.0-linux64.tar.gz
sudo tar xzf geckodriver-v0.14.0-linux64.tar.gz
sudo rm geckodriver-v0.14.0-linux64.tar.gz
6.在无界面的linux系统上需要安装虚拟的显示器
命令:sudo pip install pyvirtualdisplay selenium
7.如果系统没有安装xvfb,需要安装,才能正常运行程序
命令:sudo apt-get install xvfb
8.以下是登录微博手机版并获取用户5307898815的关注用户id代码
#-*- coding:utf-8 -*- import time import re import os import sys import codecs import shutil import urllib from selenium import webdriver from selenium.webdriver.common.keys import Keys import selenium.webdriver.support.ui as ui from selenium.webdriver.common.action_chains import ActionChains import traceback import sys reload(sys) sys.setdefaultencoding("utf-8") from pyvirtualdisplay import Display display = Display(visible=0, size=(1800, 1600)) display.start()driver = webdriver.Firefox() wait=ui.WebDriverWait(driver,10) def LoginWeibo_cn(username,password):try:print u'准备登陆weibop.cn网站..'driver.get("https://passport.weibo.cn/signin/login?entry=mweibo&r=")# print driver.current_url ,driver.page_sourcetime.sleep(10)elem_user = driver.find_element_by_id("loginName") elem_user.send_keys(username) time.sleep(5)elem_pwd = driver.find_element_by_id("loginPassword") elem_pwd.send_keys(password)time.sleep(5)elem_sub=driver.find_element_by_id("loginAction")elem_sub.click() print u'登陆成功...'return Trueexcept Exception,e:print "Error:",ereturn Falsedef VisitPersonFollowPage(uid): try:url = 'https://weibo.cn/{}/follow?page=1'.format(uid)driver.get(url)time.sleep(1)users = driver.find_elements_by_xpath('//table')print 'len(users):',len(users) for user in users:try:link = user.find_element_by_xpath('.//td/a[2]').get_attribute("href")follow_uid_re = re.search(r'uid=(\d+)&',link)if follow_uid_re:follow_uid = follow_uid_re.group(1) print '关注用户id:',follow_uidexcept:traceback.print_exc()except:traceback.print_exc()if __name__ == '__main__': username = '用户名' password = '密码' login_status = LoginWeibo_cn(username, password) if login_status: user_id = '5307898815'VisitPersonFollowPage(user_id) driver.quit()display.stop()
9.以下是登录新浪微博电脑网页版代码
#-*- coding:utf-8 -*- import time import re import os import sys import codecs import shutil import urllib from selenium import webdriver from selenium.webdriver.common.keys import Keys import selenium.webdriver.support.ui as ui from selenium.webdriver.common.action_chains import ActionChains import traceback import sys reload(sys) sys.setdefaultencoding("utf-8") from pyvirtualdisplay import Display display = Display(visible=0, size=(1800, 1600)) display.start()driver = webdriver.Firefox() wait=ui.WebDriverWait(driver,10)def LoginWeibo_com(username,password):try:print u'准备登陆weibop.com网站..'driver.get("http://weibo.com/login?url=")time.sleep(5)# print driver.current_url ,driver.page_source elem_user = driver.find_element_by_id('loginname')elem_user.clear() elem_user.send_keys(username) time.sleep(3) elem_pwd = driver.find_element_by_name("password") elem_pwd.send_keys(password) time.sleep(2)elem_sub = driver.find_element_by_class_name('W_login_form').find_element_by_link_text('登录')elem_sub.click() print u'登陆成功...'except:traceback.print_exc()finally:print u'End loginWeibo!\n\n'if __name__ == '__main__':username = '用户名' password = '密码' LoginWeibo_com(username, password) driver.quit()display.stop()
转载于:https://www.cnblogs.com/lingwang3/p/6884832.html
linux上用selenium登录新浪微博,获取用户关注的用户id相关推荐
- android 从新浪微博获取用户信息,Android授权登录新浪微博获取用户个人信息
Android授权登录新浪微博获取用户个人信息 Android授权登录新浪微博获取用户个 人信息 一.准备工作 我们都知道,无论是分享到新浪微博,还是获取新浪微博的用户信息,都离不开一样东西,那就是新 ...
- 监测 Linux 上失败的登录尝试方法分享
在Linux服务器上重复的失败登录尝试可能表明有人企图闯入帐户,或者仅仅意味着有人忘了密码或输错密码.本文介绍了如何检查失败的登录尝试并检查系统的设置,查看何时锁住帐户以处理问题. 您要了解的第一件事 ...
- linux18.04循环登陆,在Ubuntu 18.04 Bionic Beaver Linux上启用自动登录
目的 目标是在Ubuntu 18.04 Bionic Beaver Linux上启用自动登录 操作系统和软件版本 操作系统: - Ubuntu 18.04 Bionic Beaver Linux 软件 ...
- Android授权登录新浪微博获取用户个人信息
转载请注明出处:http://blog.csdn.net/u010214991/article/details/49149793 记得第一次发博文的时候我写了一篇文章,题为" Android ...
- linux下次登录强制更改密码,如何强制用户在Linux上的下次登录时更改密码
当你使用默认密码创建用户时,你必须强制用户在下一次登录时更改密码. 当你在一个组织中工作时,此选项是强制性的.因为老员工可能知道默认密码,他们可能会也可能不会尝试不当行为. 这是安全投诉之一,所以,确 ...
- 教你如何在 Linux 上为 SSH 登录设置电子邮件提醒
在本文中介绍如何在Linux系统上为ssh登录设置电子邮件提醒.以接收有关对root用户的未经授权或非法登录访问的警报. .bashrc文件是做什么的? .bashrc文件是一个脚本,每当以交互方式启 ...
- java linux driver,JAVA:使用GeckoDriver在Linux上运行Selenium测试:驱动程序不可执行
我目前正在 Linux机器上使用Selenium WebDriver进行测试自动化项目. (Ubuntu 16.04.3)测试可以在Windows机器上执行而没有任何错误,因为我试图在Linux VM ...
- Linux中FTP设置登录欢迎词,怎么为FTP登陆用户设置欢迎语(servu)
先建立一个.txt文件,输入你想要显示的文字,然后在 Serv_u内的server设置里面,加入这个.txt文件就可以了 . 例如: --------------------------------- ...
- 在Linux上构建ASP.NET环境-asp.net关注
在Linux上安装mono,xsp,mod_mono后,可以构建一个ASP.NET环境,Mono项目是由Novell支持的. mono官网地址: mono下载页面:/mono-downloads/do ...
最新文章
- pptv网络电视android,PP视频(原聚力视频)
- dalsa线扫相机调试文档_线阵相机调试文档
- Windows Phone开发(32):路径之PathGeometry 转:http://blog.csdn.net/tcjiaan/article/details/7469512...
- pandas(二) -- Dataframe创建及索引
- boost::range模块uniqued相关的测试程序
- uniapp h5 页面 解决 ios 长按无法保存图片问题(安卓支持此功能)--实现移动端长按保存图片
- Exynos4412 裸机开发 —— IIC总线
- matlab线性串联校正,基于MATLAB串联超前校正设计.ppt
- 股票决定卖不卖?近六成粉丝支持马斯克出售10%特斯拉股票
- 操作手机数据库的uri
- 程序媛爬取了 5 个 APP 的 4220 个数据,解读过去的一年到底过得怎么样!
- linux虚拟机网卡无法启动
- 分布式服务框架-原理与实践:15---服务降级-学习笔记
- 内蒙古工业大学计算机好调剂吗,内蒙古工业大学信息工程学院2017硕士研究生第三次调剂公告...
- 直播平台软件开发的全流程探索
- vue+element弹窗可拖拽拉伸和弹窗内table高度自适应
- 【ES】原生es的复杂查询
- 非常详细的 navigationController 的使用
- 每秒处理10万订单支付架构
- 多云管理行政管理规范需求_征服多云管理的6种工具
热门文章
- python3 messagebox_如何在Python3.4中正确实现tkMessageBox?
- ubuntu安装python_使用WSL在Windows上搭建Python开发环境
- 使用c 对mysql数据库_c对mysql数据库的操作
- 步骤mysql_mysql 安装 等步骤(一)
- python的setting怎么找_vscode配置python之settings.json 智能提示
- 远播教育集团PHP面试题,远播教育金牌升学规划师陈煜雯:如何规划孩子的升学?【摇号】...
- 15个常用的javaScript正则表达式
- android开发switch自动关闭,更改Android Switch状态
- C语言中 二维数组在内存中的存放顺序是,在计算机中二维数组的元素是按行顺序存放的,即在内存中,先顺序存放二维数组第一行的元素,再顺序存放二维数组第二行的元素,以此类推 答案:对...
- datatable更新到mysql_.NET_使用DataTable更新数据库(增,删,改),1、修改数据复制代码 代码如 - phpStudy...