前言
嗨喽,大家好呀~这里是爱看美女的茜茜呐
又到了学Python时刻~
Python骚操作来了~
用Python来实现科目一/四自动答题,100分不要太简单!
环境介绍:
-
python 3.8 运行代码
-
pycharm 2021.2 辅助敲代码
-
requests >>> pip install requests
-
parsel
如果安装python第三方模块:
-
win + R 输入 cmd 点击确定, 输入安装命令 pip install 模块名 (pip install requests) 回车
-
在pycharm中点击
Terminal
(终端) 输入安装命令
如何配置pycharm里面的python解释器?
-
选择file(文件) >>> setting(设置) >>> Project(项目) >>> python interpreter(python解释器)
-
点击齿轮, 选择add
-
添加python安装路径
pycharm如何安装插件?
-
选择file(文件) >>> setting(设置) >>> Plugins(插件)
-
点击 Marketplace 输入想要安装的插件名字 比如:翻译插件 输入 translation / 汉化插件 输入 Chinese
-
选择相应的插件点击 install(安装) 即可
-
安装成功之后 是会弹出 重启pycharm的选项 点击确定, 重启即可生效
明戳戳的暗示,哈哈哈哈哈 😜
代码实现流程:
-
发送请求
-
获取数据
-
解析数据
-
保存数据
效果展示
代码展示
代码仅做展示
网址我屏蔽了,不然系统不给过~
源码点击 蓝色字体 自取,我都放在这里了。
模块
import requests
import parsel
from selenium import webdriver
发送请求
:param html_url:
请求网址
:return:
响应对象
def get_response(html_url):
headers = {
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/104.0.0.0 Safari/537.36'
}
response = requests.get(url=html_url, headers=headers)
return response
获取答案链接
def get_answer_url(html_url):
"""
:param html_url:
:return:
"""
html_data = get_response(html_url).text
selector = parsel.Selector(html_data)
answer_url_id = selector.css('.Content li::attr(c)').getall()
answer_url_list = [f'https://地址我屏蔽了,不然不给过/Post/{i}.htm' for i in answer_url_id]
return answer_url_list
获取答案
def get_answer_result(answer_url):
"""
:param answer_url:
:return:
"""
answer_data = get_response(html_url=answer_url).text
selector = parsel.Selector(answer_data)
question = selector.css('#question a::text').get()
answer = selector.css('#question h1 u::text').get()
if answer == '对':
answer = '正确'
elif answer == '错':
answer = '错误'
answer_dict = {
'问题': question,
'答案': answer
}
return answer_dict
获取所有问题以及答案
def get_all_answer(answer_url_list):
"""
:param link:
:return:
"""
page = 1
for answer_url, li in zip(answer_url_list, lis):
answer_dict = get_answer_result(answer_url)
bs = li.find_elements_by_css_selector('b')
num = 1
for b in bs:
choose = b.text
if len(choose) > 2:
choose = choose[0]
print(choose, answer_dict['答案'])
if choose in answer_dict['答案']:
driver.find_element_by_css_selector(f'#LI{page} b:nth-child({num+2})').click()
print('点击了')
else:
print('没有点击')
num += 1
page += 1
print(answer_dict)
文章看不懂,我专门录了对应的视频讲解,本文只是大致展示,完整代码和视频教程点击下方蓝字
点击 蓝色字体 自取,我都放在这里了。
尾语 💝
感谢你观看我的文章呐~本次航班到这里就结束啦 🛬
希望本篇文章有对你带来帮助 🎉,有学习到一点知识~
躲起来的星星🍥也在努力发光,你也要努力加油(让我们一起努力叭)。
最后,博主要一下你们的三连呀(点赞、评论、收藏),不要钱的还是可以搞一搞的嘛~
不知道评论啥的,即使扣个6666也是对博主的鼓舞吖 💞 感谢 💐