# _*_ coding:utf-8 _*_

# @Time   : 2020-5-9 15:42

# @Author  : BGLB

# @Software : PyCharm

from time import sleep

from selenium.webdriver import Chrome

web = Chrome()

web.maximize_window()

def get_element():

web.get("https://www.python123.io/index/login")

uername = web.find_element_by_xpath(

'//*[@id="links"]/div[1]/div[2]/div/div[1]/div[1]/div/div[1]/div/div[1]/form/div[1]/div/input')

passworld = web.find_element_by_xpath(

'//*[@id="links"]/div[1]/div[2]/div/div[1]/div[1]/div/div[1]/div/div[1]/form/div[2]/div/input')

uername.send_keys('email@email.com') # python123官网的用户名

passworld.send_keys('password') # python123的账户密码

login = web.find_element_by_xpath(

'//*[@id="links"]/div[1]/div[2]/div/div[1]/div[1]/div/div[1]/div/div[1]/div[3]/div[1]/button')

login.click()

sleep(1)

web.get('https://www.python123.io/student/courses/1521/intro')

sleep(2)

web.find_element_by_xpath('//span[text()=10]').click()

flag = True

for i in range(10):

if i == 9:

flag = False

tumu_list = web.find_elements_by_xpath(

'//*[@id="app"]/div/div[1]/div[1]/div[2]/section/div/div/div[2]/div/section/div/div/div[2]/div[2]/div/div[2]/div[2]/div[2]/div')

tumu_chuli(tumu_list[i], flag)

web.back() # 返回上一页

web.back()

web.back()

sleep(2)

web.close()

def save(failname, content):

''' 保存到文件 :param failname:文件名 :param content:内容 :return: '''

with open(failname, 'a', encoding="utf-8") as f:

f.write(content)

f.close()

def tumu_chuli(list_timu, flag):

failname = list_timu.find_element_by_tag_name('b').text[0:3]+".txt"

list_timu.click()

sleep(2)

count = 2

if flag:

web.find_element_by_xpath(

'//*[@id="group-wrapper"]/div/div[2]/div/div/div/div[2]/div/div/div[2]/div[2]/div/div[1]/div/div/div[1]').click()

xuanze = web.find_element_by_xpath(

'//*[@id="group-wrapper"]/div/div[2]/div/div/div/div[2]/div/div[1]/div/div/div[1]')

item = xuanze.find_element_by_tag_name('b').text

xuanze_list = xuanze.find_elements_by_class_name('card')

save(failname, item)

for xz in xuanze_list:

save(failname, "\n"+xz.text+"\n")

web.back()

sleep(2)

web.find_element_by_xpath(

'//*[@id="group-wrapper"]/div/div[2]/div/div/div/div[2]/div/div/div[2]/div[2]/div/div[2]/div/div/div/div[1]').click()

for q in range(count):

bs_chuli(failname)

else:

count = 4

web.find_element_by_xpath(

'//*[@id="group-wrapper"]/div/div[2]/div/div/div/div[2]/div/div/div[2]/div[2]/div/div/div/div/div/div[1]').click()

for j in range(count):

bs_chuli(failname)

print(failname+"写入完成!")

# 编程题的处理

def bs_chuli(failname):

sleep(1)

bs_timu = web.find_element_by_class_name('mce-content-body').text

# 由于网站的代码中有特殊字符,所以用了以下的方式替换了所有特殊字符

bs_daan_my = web.find_element_by_xpath(

'/html/body/div/div/div[1]/div[1]/div[2]/section/div/div/div[2]/div/section/div/div/div[2]/div/div/div/div[2]/div/div/div/div[1]/div/div[3]/div/div/div/div[3]/div/div/div/div[2]/div/div[3]'

).text.replace('·', ' ').replace('¤', '').replace('¬', '').replace('¶', '')

web.find_element_by_xpath(

'/html/body/div/div/div[1]/div[1]/div[2]/section/div/div/div[2]/div/section/div/div/div[2]/div/div/div/div[2]/div/div/div/div[1]/div/div[3]/div/div/div/div[2]/ul/li[3]').click()

sleep(1)

bs_daan_cankao = web.find_element_by_xpath(

'/html/body/div/div/div[1]/div[1]/div[2]/section/div/div/div[2]/div/section/div/div/div[2]/div/div/div/div[2]/div/div/div/div[1]/div/div[3]/div/div/div/div[5]/div/div/div/div').text

web.find_element_by_xpath(

'//button[2]').click()

save(failname, "\n"+bs_timu+"\n【我的答案】\n"+bs_daan_my+"\n"+bs_daan_cankao)

sleep(1)

get_element()

python123选择题及答案_py利用selenium库 爬取 python123官网的练习题及答案相关推荐

  1. Python 爬虫篇-利用BeautifulSoup库爬取墨迹天气网的天气信息实例演示,调用墨迹天气api接口获取空气质量

    安装方法: pip install BeautifulSoup4 BeautifulSoup 详细使用文档 墨迹天气抓取演示 墨迹天气没有提供专门的天气接口 api,但我们可以用 BeautifulS ...

  2. Python re库爬取阴阳师官网高清壁纸

    壁纸官方网址: https://yys.163.com/media/picture.html 导库 import requests import re from urllib import error ...

  3. 爬虫实战(二)—利用requests、selenium爬取王者官网、王者营地APP数据及pymongo详解

    概述 可关注微信订阅号 loak 查看实际效果. 代码已托管github,地址为:https://github.com/luozhengszj/LOLGokSpider ,包括了项目的所有代码. 本文 ...

  4. python使用selenium爬取联想官网驱动(一):获取遍历各驱动的下载网址

    python使用selenium爬取联想官网驱动(一):获取遍历各驱动的下载网址然后wget命令试验下载 由于初期学习,所以先拿一个型号的产品驱动试验. (1)以下为在联想某型号产品获取相关驱动下载的 ...

  5. Selenium+ChromeDriver爬取链家网二手房价(包括经纬度)信息

    [需求]   爬取青岛市二手房源信息,要求包括房源基本信息.小区名称.总价.单价以及房源的经纬度信息.   根据以上需求,进入青岛市二手房首页,如图1所示,进行页面分析: 图1 [页面分析]   首先 ...

  6. 使用Python requests和BeautifulSoup库爬取去哪儿网

    功能说明:爬取去哪儿网城市下面若干条景点详细信息并将数据导入Excel表(使用xlwt库) 爬取去哪儿网的教程参考自 https://blog.csdn.net/gscsd_t/article/det ...

  7. 通过selenium八爪鱼爬取研招网各专业的初试信息

    任务需求: 因工作需要,需要爬取研招网各个高校每个专业研究生考试的初试科目信息. 处理步骤: 1,查看研招网页面(https://yz.chsi.com.cn/zsml/zyfx_search.jsp ...

  8. Java使用Selenium+ChromeDriver 爬取中国知网

    Java使用Selenium 爬取中国知网 所需Jar包 中国知网的网页结构,我就不在这里赘述了,自己去看,这里我操作的是爬取博硕论文,只抓取前十页 当Selenium无法调取ChromeDriver ...

  9. python之利用requests库爬取西刺代理,并检验IP的活性

    用爬虫爬取某个网站的数据时,如果用一个IP频繁的向该网站请求大量数据,那么你的ip就可能会被该网站拉入黑名单,导致你不能访问该网站,这个时候就需要用到IP动态代理,即让爬虫爬取一定数据后更换IP来继续 ...

最新文章

  1. 2022-2028年中国阻燃母料行业市场深度分析及发展规模预测报告
  2. python做运动控制_第一课:用Python操控小龟小车运动
  3. python编程入门指南怎么样-如果想学python怎么入门?
  4. UNIX环境高级编程——无名管道和有名管道
  5. CV之Hog+HamMingDistance:基于Hog提取和汉明距离对比的应用—图像相似度对比之for循环将多个成对图片依次对比并输出相似度
  6. Bentley Descartes V8i安装教程
  7. Dell Latitude D630 无法wubi安装Kubuntu
  8. SAP License:后SAP ECC 6.0 时代
  9. asp.net mvc 点滴 一 asp.net mvc vs asp.net web forms
  10. 聊聊spring cloud的HystrixCircuitBreakerConfiguration
  11. Modscan和Modsim 两种Modbus调试工具使用说明
  12. 西安电子科大2010年的硕士博士考试推荐书
  13. 搭建教育直播平台,对教育机构有什么优势?
  14. [JPA错误]javax.persistence.EntityNotFoundException: Unable to find xxx
  15. Linux云计算好学吗?Linux云计算运维学习资料 Vim编辑器
  16. linux mint回收站,Autotrash:定时自动删除旧垃圾的命令行工具
  17. 【前端微服务化】使用飞冰搭建前端微服务化框架
  18. Dynamics CRM: 权限问题之SecLib::AccessCheckEx2 failed
  19. 那些老牌互联网公司现在都混得怎样了?
  20. 想成为我的同事,不会点Linux怎么行!

热门文章

  1. 阿里高级技术专家张建飞:深度剖析领域模型vs数据模型的用法
  2. 玄姐出品:想和兄弟、集美们聊聊“分布式CAP”中情侣的纠缠故事,真是剪不断 理还乱!...
  3. 阿里高级技术专家邱小侠:微服务架构的理论基础 - 康威定律
  4. 微信公众帐号开发教程第16篇-应用实例之历史上的今天
  5. RedHat系列软件管理(第二版) --二进制软件包管理
  6. linux下源码安装官方最新版Python
  7. Spring Batch 批量处理策略
  8. Ansible 管理windwos服务器(一)
  9. 构建模式--Adapter模式(JAVA)
  10. Vertx JDBC 批处理