python123选择题及答案_py利用selenium库 爬取 python123官网的练习题及答案
# _*_ 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官网的练习题及答案相关推荐
- Python 爬虫篇-利用BeautifulSoup库爬取墨迹天气网的天气信息实例演示,调用墨迹天气api接口获取空气质量
安装方法: pip install BeautifulSoup4 BeautifulSoup 详细使用文档 墨迹天气抓取演示 墨迹天气没有提供专门的天气接口 api,但我们可以用 BeautifulS ...
- Python re库爬取阴阳师官网高清壁纸
壁纸官方网址: https://yys.163.com/media/picture.html 导库 import requests import re from urllib import error ...
- 爬虫实战(二)—利用requests、selenium爬取王者官网、王者营地APP数据及pymongo详解
概述 可关注微信订阅号 loak 查看实际效果. 代码已托管github,地址为:https://github.com/luozhengszj/LOLGokSpider ,包括了项目的所有代码. 本文 ...
- python使用selenium爬取联想官网驱动(一):获取遍历各驱动的下载网址
python使用selenium爬取联想官网驱动(一):获取遍历各驱动的下载网址然后wget命令试验下载 由于初期学习,所以先拿一个型号的产品驱动试验. (1)以下为在联想某型号产品获取相关驱动下载的 ...
- Selenium+ChromeDriver爬取链家网二手房价(包括经纬度)信息
[需求] 爬取青岛市二手房源信息,要求包括房源基本信息.小区名称.总价.单价以及房源的经纬度信息. 根据以上需求,进入青岛市二手房首页,如图1所示,进行页面分析: 图1 [页面分析] 首先 ...
- 使用Python requests和BeautifulSoup库爬取去哪儿网
功能说明:爬取去哪儿网城市下面若干条景点详细信息并将数据导入Excel表(使用xlwt库) 爬取去哪儿网的教程参考自 https://blog.csdn.net/gscsd_t/article/det ...
- 通过selenium八爪鱼爬取研招网各专业的初试信息
任务需求: 因工作需要,需要爬取研招网各个高校每个专业研究生考试的初试科目信息. 处理步骤: 1,查看研招网页面(https://yz.chsi.com.cn/zsml/zyfx_search.jsp ...
- Java使用Selenium+ChromeDriver 爬取中国知网
Java使用Selenium 爬取中国知网 所需Jar包 中国知网的网页结构,我就不在这里赘述了,自己去看,这里我操作的是爬取博硕论文,只抓取前十页 当Selenium无法调取ChromeDriver ...
- python之利用requests库爬取西刺代理,并检验IP的活性
用爬虫爬取某个网站的数据时,如果用一个IP频繁的向该网站请求大量数据,那么你的ip就可能会被该网站拉入黑名单,导致你不能访问该网站,这个时候就需要用到IP动态代理,即让爬虫爬取一定数据后更换IP来继续 ...
最新文章
- 2022-2028年中国阻燃母料行业市场深度分析及发展规模预测报告
- python做运动控制_第一课:用Python操控小龟小车运动
- python编程入门指南怎么样-如果想学python怎么入门?
- UNIX环境高级编程——无名管道和有名管道
- CV之Hog+HamMingDistance:基于Hog提取和汉明距离对比的应用—图像相似度对比之for循环将多个成对图片依次对比并输出相似度
- Bentley Descartes V8i安装教程
- Dell Latitude D630 无法wubi安装Kubuntu
- SAP License:后SAP ECC 6.0 时代
- asp.net mvc 点滴 一 asp.net mvc vs asp.net web forms
- 聊聊spring cloud的HystrixCircuitBreakerConfiguration
- Modscan和Modsim 两种Modbus调试工具使用说明
- 西安电子科大2010年的硕士博士考试推荐书
- 搭建教育直播平台,对教育机构有什么优势?
- [JPA错误]javax.persistence.EntityNotFoundException: Unable to find xxx
- Linux云计算好学吗?Linux云计算运维学习资料 Vim编辑器
- linux mint回收站,Autotrash:定时自动删除旧垃圾的命令行工具
- 【前端微服务化】使用飞冰搭建前端微服务化框架
- Dynamics CRM: 权限问题之SecLib::AccessCheckEx2 failed
- 那些老牌互联网公司现在都混得怎样了?
- 想成为我的同事,不会点Linux怎么行!
热门文章
- 阿里高级技术专家张建飞:深度剖析领域模型vs数据模型的用法
- 玄姐出品:想和兄弟、集美们聊聊“分布式CAP”中情侣的纠缠故事,真是剪不断 理还乱!...
- 阿里高级技术专家邱小侠:微服务架构的理论基础 - 康威定律
- 微信公众帐号开发教程第16篇-应用实例之历史上的今天
- RedHat系列软件管理(第二版) --二进制软件包管理
- linux下源码安装官方最新版Python
- Spring Batch 批量处理策略
- Ansible 管理windwos服务器(一)
- 构建模式--Adapter模式(JAVA)
- Vertx JDBC 批处理