原文地址:http://www.bianbingdang.com/article_detail/148.html

#python-selenium登陆今日头条

在运营今日头条的过程当中,有时候未免要进行一些重复无味的劳动。比如在发放微头条的时候,写好了许多内容,并不像每次登陆然后逐个发表。比如我想每个整点去发表一些东西。那么自动登陆今日头条就很有必要了。

选择selenium

选择这个工具的原因是,它可以模拟浏览器去登陆,从而避免一些不必要的麻烦。比如各种浏览器时间戳验证,反爬虫等不好处理的东西(请求头的拼接、cookies的获取)。加上运行不是特别的频繁,也不会造成频繁输入验证码、封IP等。

下载selenium驱动

  • 在谷歌浏览器顶端地址栏输入
    chrome://settings/help
    打开帮助,查看谷歌浏览器版本

  • 在谷歌官方下载对应的浏览器驱动。
    http://chromedriver.storage.googleapis.com/index.html
    如果上面的地址进不去,可以选择
    https://npm.taobao.org/mirrors/chromedriver

  • 将下载下来的驱动放置到,chrome浏览器根目录,并将此目录配置到windows的环境变量当中。

设置浏览器模型

from selenium import webdriver
browser = webdriver.Chrome()

获取cookies

browser.get("https://mp.toutiao.com")
# 点击登陆按钮
login = browser.find_element_by_css_selector('body > div > div.carousel > div.page.page-1 > div > img.i3')
login.click()
time.sleep(3)
# 填写手机号
phone = browser.find_element_by_id('user-name')
phone.send_keys('19991320539')
# 获取验证码
browser.find_element_by_id('mobile-code-get').click()
verfiy_code_input = input("请输入验证码:")
# 验证码输入框
mobile_code = browser.find_element_by_id('mobile-code')
mobile_code.send_keys(verfiy_code_input)# 登陆
browser.find_element_by_id('bytedance-SubmitStatic').click()
time.sleep(5)
cookies = browser.get_cookies()
with open('cookies.json', 'w') as f:self.cookies = json.loads(f.write(json.dumps(cookies)))

这块将获取到cookies放到cookies.json文件当中,这块今日头条在第一次登陆,会有一个云验证的图片,这块比较麻烦,只等手动点击,来获取到cookies。但是获取到之后,官方默认可以保持一个月。所以这块比较放心,不用每次都去登陆,只要得到cookie就行

使用cookie登陆

browser.get("https://mp.toutiao.com/profile_v3/index")
with open('cookies.json') as f:cookies = json.loads(f.read())
for cookie in cookies:browser.add_cookie(cookie)

这块在登陆的时候,可能页面显示未登录,其实设置cookies之后,已经登陆成功了,只需要再刷新以下一下页面 。
可再登陆完成后执行如下代码几次

browser.refresh()
browser.refresh()

完整dome代码如下

"""
#!usr/bin/env python
# -*- coding:utf-8 -*-
"""
@author:'手机视界&[变饼档博客](http://www.bianbingdang.com "变饼档博客")'
@file: login.py
@time: 2019/03/10
"""import time
import jsonfrom selenium import webdriverclass TouTiao:def __init__(self):self.cookies = Noneself.browser = webdriver.Chrome()def set_cookies(self):with open('cookies.json') as f:self.cookies = json.loads(f.read())for cookie in self.cookies:self.browser.add_cookie(cookie)def create_session(self):self.browser.get("https://mp.toutiao.com")if self.cookies is None:self.set_cookies()time.sleep(1)self.browser.get("https://mp.toutiao.com/profile_v3/index")def forward_wei(self, content):"""跳转微头条:return:"""self.browser.get("https://mp.toutiao.com/profile_v3/weitoutiao/publish")time.sleep(1)# 微头条内容框weitoutiao_content = self.browser.find_element_by_css_selector("div > div.garr-container-white.weitoutiao-index-zone > div > div:nth-child(1) > textarea")weitoutiao_content.send_keys(content)# 微头条发布按钮weitoutiao_send = self.browser.find_element_by_css_selector("div > div.garr-container-white.weitoutiao-index-zone > div > button")weitoutiao_send.click()def login(self):self.browser.get("https://mp.toutiao.com/profile_v3/index")# 点击登陆按钮login = self.browser.find_element_by_css_selector('body > div > div.carousel > div.page.page-1 > div > img.i3')login.click()time.sleep(3)# 填写手机号phone = self.browser.find_element_by_id('user-name')phone.send_keys('19991320539')# 获取验证码self.browser.find_element_by_id('mobile-code-get').click()verfiy_code_input = input("请输入验证码:")# 验证码输入框mobile_code = self.browser.find_element_by_id('mobile-code')mobile_code.send_keys(verfiy_code_input)# 登陆self.browser.find_element_by_id('bytedance-SubmitStatic').click()time.sleep(5)cookies = self.browser.get_cookies()with open('cookies.json', 'w') as f:self.cookies = json.loads(f.write(json.dumps(cookies)))print(cookies, "登陆成功")def close(self):self.browser.close()if __name__ == '__main__':tou_tiao = TouTiao()tou_tiao.create_session()tou_tiao.forward_wei('<br/>test')

作者微信:bianbingdang。转载请注明,变饼档博客

python-selenium登陆今日头条相关推荐

  1. python 头条_python-selenium登陆今日头条

    https://blog.csdn.net/a942242856/article/details/88379727 #python-selenium登陆今日头条 在运营今日头条的过程当中,有时候未免要 ...

  2. python爬取今日头条_爬取今日头条街拍图片

    参考于崔庆才的Python爬虫教程,但是崔的视频时间过长,今日头条网站反爬虫也有了变化,因此写下此文章来记录自己的爬取过程遇到的问题,也给大家一些借鉴.欢迎大家讨论. 一.获取索引页. 我们会发现do ...

  3. python 爬取今日头条热点新闻

    嗯,今天就让我们来一起爬爬今日头条的热点新闻吧! 今日头条地址:https://www.toutiao.com/ch/news_hot/ 在浏览器中打开今日头条的链接,选中左侧的热点,在浏览器开发者模 ...

  4. python爬取今日头条的文章_Python3爬取今日头条有关《人民的名义》文章

    Python3爬取今日头条有关<人民的名义>文章 最近一直在看Python的基础语法知识,五一假期手痒痒想练练,正好<人民的名义>刚结束,于是决定扒一下头条上面的人名的名义文章 ...

  5. python爬取今日头条专栏_[python3]今日头条图片爬取

    前言 代码设计流程,先模拟ajax发送搜索"街拍美女",提取返回json里面的article_url,再访问article_url,提取article_url响应的图片url,访问 ...

  6. python爬取今日头条图片

    主要内容 进入今日头条https://www.toutiao.com/ 按F12进行数据分析,找到要爬取的内容 根据获取的网页信息,编写代码 一些模块的使用方法 源代码展示 打包成可执行程序exe 1 ...

  7. 用python爬取今日头条上的图片_Python爬虫:抓取今日头条图集

    今天我们来爬取今日头条图集,老司机以街拍为例. 运行平台: Windows Python版本: Python3.6 IDE: Sublime Text 其他工具: Chrome浏览器 1.网页分析 从 ...

  8. Python 批量获取今日头条街拍美图

    大家好,在以前的文章中我们学了Ajax数据获取,这篇文章我们以今日头条为例,通过分析Ajax请求来抓取今日头条的街拍美图,并将图片下载到本地保存下来. 准备好没,我们现在开始!喜欢记得收藏.点赞.关注 ...

  9. 用python爬取头条文章_AI第四课:Python爬取今日头条文章

    到目前为止,能使用python写一点简单的程序了,本次的任务是爬取今日头条的文章信息. 大致涉及的知识点:json数据格式,浏览器插件jsonView,浏览器开发者模式,html基础,http代理,h ...

最新文章

  1. vue调用百度地图API输入提示示例下拉列表一直被触发问题
  2. es6数组初始化_ES6 迭代器(Iterator)和 for...of循环使用方法
  3. python使用ddt找不到方法_python使用ddt过程中遇到的问题及解决方案【推荐】
  4. RTX5 | 消息队列04 - (实战技巧)串口中断回调函数ISR同步线程
  5. sap把系统内部直接写入到自建表_特斯拉放弃SAP后,仅四个月就开发了套ERP
  6. 1.7 的concurrentHashMap内部结构
  7. simulik中的液压建模Simscape_Fluids资料收集及学习(原SimHydraulics)
  8. linux:云端 ubuntu下挂载数据盘
  9. 服务器状态码502什么意思,Http状态码502问题复盘
  10. android 3d桌面壁纸,五款超酷安卓手机3D桌面软件合辑推荐
  11. java itext 里表格_Java解析PDF里的表格内容
  12. 测试进阶必备,这5款http接口自动化测试工具不要太香~
  13. Pytorch获取中间变量的梯度
  14. 电脑桌面显示不全设置方法
  15. jsp怎样写一个Button onclick事件
  16. android 文件名编码,安卓删除纯乱码文件名的文件
  17. C# WPF 建立无边框(标题栏)的登录窗口
  18. c语言输入一个三位数由小到大排序,c语言程序设计练习题.doc
  19. Python基本语法小结(一)
  20. 03——axios配置对象以及默认配置

热门文章

  1. 在地址栏输入一个字母后的网址
  2. SpringBoot自动装配原理浅析
  3. 元素被鼠标掠过控制另一个元素显隐
  4. 计算机网络实验报告-632007060215
  5. CSS 文字装饰 text-decoration amp; text-emphasis
  6. 盛世昊通拼车车通证,以共享经济实现行业颠覆
  7. VMware16调整了路径后界面全部变成了英文
  8. 单曲循环 翻译_“单曲循环” 用哪个词?
  9. 数电课设之一路交通灯
  10. 高屋建瓴之WebMail攻与防