专栏首页萌海无涯基于selenium写微博爬虫(待续)

基于selenium写微博爬虫(待续)

‍太热,热的写不动了。。

导入需要用到的包

from selenium import webdriverimport time

设置好浏览器模式,使用手机模式访问

# 手机浏览器的型号mobileEmulation = {"deviceName":"iPhone X"}
# 初始化options = webdriver.ChromeOptions()options.add_experimental_option('mobileEmulation', mobileEmulation)driver = webdriver.Chrome(chrome_options=options)

进行登录操作

不是上来就需要登录,貌似有些不登录不能操作,我们提前登录

验证码是滑块,这个搞不来搞不来,加个延时手动跳过吧。

# 请求URLdriver.get("https://m.weibo.cn/")
# 点击登录driver.find_element_by_class_name("lite-sign-in").click()
# 点击账号密码登录driver.find_element_by_class_name("b-left").click()
# 账号driver.find_element_by_id("loginName").send_keys("用户名")
# 输入密码driver.find_element_by_id("loginPassword").send_keys("密码")# 点击登录driver.find_element_by_id("loginAction").click()# 自己手动跳过,延时5秒time.sleep(5)# 验证码# driver.find_element_by_class_name("geetest_radar_tip").click()

判断登录后的跳转URl是否是登录成功的url

if driver.current_url == 'https://m.weibo.cn/?sudaref=security.weibo.com':    print("登录成功")

手机微博,是往下滑动翻页,我们用js代码来实现

# 翻页操作js="var q=document.documentElement.scrollTop=100000"driver.execute_script(js)time.sleep(3)
from selenium import webdriverimport time
# 手机浏览器的型号mobileEmulation = {"deviceName":"iPhone X"}
# 初始化options = webdriver.ChromeOptions()options.add_experimental_option('mobileEmulation', mobileEmulation)driver = webdriver.Chrome(chrome_options=options)

# 请求URLdriver.get("https://m.weibo.cn/")
# 点击登录driver.find_element_by_class_name("lite-sign-in").click()
# 点击账号密码登录driver.find_element_by_class_name("b-left").click()
# 账号driver.find_element_by_id("loginName").send_keys("用户名")
# 输入密码driver.find_element_by_id("loginPassword").send_keys("密码")# 点击登录driver.find_element_by_id("loginAction").click()time.sleep(5)# 验证码# driver.find_element_by_class_name("geetest_radar_tip").click()
# 块# driver.find_element_by_class_name("geetest_slider_button")
# 登录后地址if driver.current_url == 'https://m.weibo.cn/?sudaref=security.weibo.com':    print("登录成功")
# 点击搞笑
driver.find_element_by_xpath('//*[@id="app"]/div[1]/div[1]/div[2]/div/div[1]/div/div/ul/li[5]').click()

# 翻页操作js="var q=document.documentElement.scrollTop=100000"driver.execute_script(js)time.sleep(3)

本文分享自微信公众号 - 萌海无涯(mhwyhtwa)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-07-29

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Android 二维码 生成和识别(附Demo源码)

    今天讲一下目前移动领域很常用的技术——二维码。现在大街小巷、各大网站都有二维码的踪迹,不管是IOS、Android、WP都有相关支持的软件。之前我就想了解二维码...

    战神伽罗
  • 【多进程】php实现 master-worker 守护多进程模式

    执行命令 kill 65,杀死进程 65 则master_process 进程会再自动开启一个子进程

    码缘
  • 如何快速解决网站中存在的Web漏洞?

    在大数据快速发展的现今阶段,不管多大多小的企业都会存在网络安全问题。有些人就很疑惑,哪里会存在问题呢?事实是只要你的业务是线上的,您有网站就会出现安全问题。其中...

    墨者安全科技
  • 深度解密HTTP通信细节

    为了对网络数据包的“流转”有更加深刻的理解,我在docker(远程)上部署一个服务,支持http方式调用。从客户端(本地)用http方式请求其中的一个接口,并得...

    架构师修行之路
  • PHP系列 | PHP跨平台实时通讯框架 Socket.IO 的应用

    利用PHP构建能够在不同浏览器和移动设备上良好运行的实时应用,如实时分析系统、在线聊天室、在线客服系统、评论系统、WebIM等。

    Tinywan
  • 微信公众平台开发(一) 配置接口

    微信公众平台是腾讯公司在微信的基础上新增的功能模块,通过这一平台,个人和企业都可以打造一个微信的公众号,并实现和特定群体的文字、图片、语音的全方位沟通、互动。

    战神伽罗
  • Knative入门系列6:Knative的使用

    Knative 是一个基于 Kubernetes 的,用于构建、部署和管理现代 serverless 应用的平台。Getting Started with Kn...

    崔秀龙
  • (译)HTTP Egress 流量的监控和访问策略管理

    Istio 的主要功能就是在服务网格内部管理微服务之间的通信,除此之外,Istio 还能对 Ingress(从外部进入网格) 和 Egress(从网格发出到外部...

    崔秀龙
  • 腾讯云服务器部署CentOS系统站点

    我们使用 oneinstack 一键安装包进行安装,oneinstack的官网地址是:https://oneinstack.com/ 您可以在上面获取更多安装信...

    用户2416682
  • 手把手撸PHP扩展 0x06: 协程创建(二)

    首先,我们需要对传给接口的参数进行解析。解析参数需要使用PHP提供给我们的宏来完成,分别是开头的和结尾的宏:

    桶哥

扫码关注云+社区

领取腾讯云代金券