selenium爬取京东评论_分布式爬虫实战

selenium爬取京东评论_分布式爬虫实战今天我们来讲一下如何通过python来实现自动登陆京东,以及签到领取金币。如何自动登陆京东?我们先来看一下京东的登陆页面,如下图所示:【插入图片,登陆页面】登陆框就是右面这一个框框了,但是目前我们遇到一个困呐,默认的登陆方式是扫码登陆,如果我们想要以用户民个、密码的形式登陆,就要切换一下。我们看一下这两种登陆方式是如何切换的,通过浏览器的元素检查,我们看一下两个标签。【插入图片,两种…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

今天我们来讲一下如何通过python来实现自动登陆京东,以及签到领取金币。

如何自动登陆京东?

我们先来看一下京东的登陆页面,如下图所示:
【插入图片,登陆页面】
993869-20171204222040722-997306639.jpg

登陆框就是右面这一个框框了,但是目前我们遇到一个困呐,默认的登陆方式是扫码登陆,如果我们想要以用户民个、密码的形式登陆,就要切换一下。
我们看一下这两种登陆方式是如何切换的,通过浏览器的元素检查,我们看一下两个标签。
【插入图片,两种登陆方式】
993869-20171204222121550-1146638960.jpg

扫码登陆和用户登陆分别在一个div标签里面,我们可以通过css选择器选定用户登陆,使其下面的a标签的class为checked,接下来的一切就比较简单了。
我们要获取到用户名输入框、密码输入框以及登陆按钮即可。
【插入图片,用户登陆框】
993869-20171204222209081-1023608090.jpg

下面看一下实现的代码,假设我们通过FireFox浏览器模拟登陆吧。

from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC from selenium.common.exceptions import TimeoutException import time login_url='https://passport.jd.com/uc/login' uid='********' pwd='********' browser=webdriver.Firefox() wait=WebDriverWait(browser, 10) def login(): try: browser.get(login_url) login_tab_u=wait.until(EC.element_to_be_clickable((By.CSS_SELECTOR, "div.login-tab:nth-child(3)"))) login_tab_u.click()#这里我们没有获取那个a标签,而是直接获取外层的div标签,比较简单而且方便 uid_input = wait.until(EC.presence_of_element_located((By.CSS_SELECTOR, "#loginname"))) pwd_input=wait.until(EC.presence_of_element_located((By.CSS_SELECTOR, "#nloginpwd"))) login_button = wait.until(EC.element_to_be_clickable((By.CSS_SELECTOR, "#loginsubmit"))) uid_input.send_keys(uid) pwd_input.send_keys(pwd) login_button.click() except TimeoutException: login() def main(): login() time.sleep(5) browser.close() if __name__=='__main__': main()

如何自动签到领金币?

领金币一定要登陆vip页面才可以。
vip页面的url=’https://vip.jd.com/home.html
但是要登陆vip页面的话,还是会跳转到第一步的那个登陆页面,我们利用第一步的方法登陆即可。
【插入图片,签到页面】
993869-20171204222131300-1127741009.jpg

签到的链接在右侧,我们获取到这个链接点击就行了。
【插入图片,签到链接】
993869-20171204222139128-1295412753.jpg

这个标签很简单。

vip_url='https://vip.jd.com/home.html' def user_singin(): try: browser.get(vip_url) login_tab_u=wait.until(EC.element_to_be_clickable((By.CSS_SELECTOR, "div.login-tab:nth-child(3)"))) login_tab_u.click() uid_input = wait.until(EC.presence_of_element_located((By.CSS_SELECTOR, "#loginname"))) pwd_input=wait.until(EC.presence_of_element_located((By.CSS_SELECTOR, "#nloginpwd"))) login_button = wait.until(EC.element_to_be_clickable((By.CSS_SELECTOR, "#loginsubmit"))) uid_input.send_keys(uid) pwd_input.send_keys(pwd) login_button.click() sign_in_button=wait.until(EC.element_to_be_clickable((By.CSS_SELECTOR, "#signIn"))) sign_in_button.click() print('您已签到成功!') except TimeoutException: user_singin()

前面的代码跟上面是一样的,只不过要获取到签到的标签。
这种登陆方式基本上可以用于任何网站,只不过做一些修改就可以了。
请大家参考。

993869-20171127210458206-1142783382.jpg

转载于:https://www.cnblogs.com/xingzhui/p/7979331.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/192346.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • gpsgate 配置过程

    gpsgate 配置过程gpsgate是一个虚拟串口的软件。通过gpsgate虚拟出来的串口可以同时连接N个应用程序。举个例子来说,QIGI智能手机的gps通讯端口是com3,波特率手是9600。我们通过gpsgate虚拟出

    2022年7月2日
    24
  • asp.net 可选可输入的dropdownlist

    asp.net 可选可输入的dropdownlistasp.net 可选可输入的dropdownlist

    2022年4月24日
    42
  • 学生注册idea_学生证怎么绑定身份证

    学生注册idea_学生证怎么绑定身份证一、安装进入官网下载适合自己系统的版本,下载地址:https://www.jetbrains.com/idea/download/#section=windows安装中选择适合本机的64位(32位)版本,其他一直next即可二、激活成功教程先下载jar包JetbrainsCrack.jar,把它放到你认为合适的文件夹内,我直接放在了安装目录C:\ProgramFiles\JetBrai…

    2022年9月23日
    0
  • 小程序开发毕业设计_基于小程序的毕业设计

    小程序开发毕业设计_基于小程序的毕业设计基于微信小程序的培训机构系统前言:该系统作为本科毕业设计,可能还有很多的不足。只是当时做这个系统的时候,由于需要使用java语言作为后端实现与微信小程序界面数据交互,看遍网上很多的案例基本后台都是php语言用于编写接口,几乎没找到过java作为后台语言的案例。写这篇博客只是为了帮助需要后台使用java语言来实现的朋友。一、项目介绍微信小程序端:小程序端管理员实现对信息模块的管理,包含课程…

    2022年9月17日
    0
  • offsetwidth111[通俗易懂]

    offsetwidth是包括border、padding等,即盒模型尺寸。(所以遇到offsetWidth和border同时出现的时候要考虑一下会不会导致出错)一个小实验当div宽高200px,border为1px的时候,在给div添加一个变窄的定时器事件的时候,使用语句:div.style.width=div.offfsetWidth-1+‘px’,会发现,div在变宽。究其原因:s…

    2022年4月14日
    43
  • quotient函数_Mid函数

    quotient函数_Mid函数今天学到一个新函数,很有用QuotedStr(s);//在s两边加单引号,这样就不会看着n多的单引号糊涂了。。。转载于:https://www.cnblogs.com/studypanp/p/4917369.html…

    2022年10月18日
    0

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号