当编程遇上AI,纵享丝滑

简介: 当编程遇上AI,纵享丝滑

前言

自从CHATGPT火了以后,我发现我身边的人再也不怕写报告了,什么个人总结,汇报材料,年度总结,伸手就来(反正哪些报告也没人看),除了一些针对性很强的文章(这里说的是针对性,不是技术性)基本上人工智能都能说个一二三,以前是天下文章一大抄,看你会抄不会抄,现在是看你会问不会问,只要问的准,答案应该都是准确的。下面根据我之前记的一个爬虫笔记,我们用人工智能来寻找答案,当时还有一些小错误,我们看人工智能能不能解决。


一、提出需求

在“编程小白的自学笔记十二(python爬虫入门四Selenium的使用实例二)”中,我们是找到了百度贴吧的广告子页面,然后点击了第一个广告,我们尝试这样问下:


请用python代码编写爬虫,实现找到百度贴吧的广告子页面,点击第一个广告

 

我们发现好像不能提爬虫这个关键字,那么我们修改问题:请用python代码编写代码,实现找到百度贴吧的广告子页面,点击第一个广告。这次可以了

二、检查代码

我们来看看人工智能的全部回答内容:


这里提供一个Python+Selenium的示例代码:

from selenium import webdriver
# 打开chrome浏览器
driver = webdriver.Chrome()
# 打开百度贴吧
driver.get('https://tieba.baidu.com/')
# 等待页面加载完成
driver.implicitly_wait(10)
# 找到广告iframe并切换到它
iframe = driver.find_element_by_xpath('//iframe[@class="iframe_wrapper"]')
driver.switch_to.frame(iframe)
# 找到第一个广告并点击
ad = driver.find_element_by_xpath('//div[@class="ad-list"]//a')
ad.click()

这段代码会先打开Chrome浏览器,并进入百度贴吧首页。然后,它会等待页面加载完成,找到广告的iframe并切换到它。接着,它会找到第一个广告并点击它。注意,这段代码假设第一个广告是在一个类名为ad-list的div里,如果实际情况不同,需要修改xpath表达式。


我们查看代码,在逻辑上没有任何问题,而且注释什么的写的很详细,我是做不到这样的,唯一有可能出问题的地方就是xpath可能出错,本着严谨的原则,我们运行一下试试看。


不出意外出意外了,报错了。

AttributeError: 'WebDriver' object has no attribute 'find_element_by_xpath',这个错误是因为版本的原因,新的Selenium已经不用这种格式了,我们稍稍修改下代码试试:

from selenium import webdriver
from selenium.webdriver.common.by import By
# 打开chrome浏览器
driver = webdriver.Chrome()
# 打开百度贴吧
driver.get('https://tieba.baidu.com/')
# 等待页面加载完成
driver.implicitly_wait(10)
# 找到广告iframe并切换到它
iframe = driver.find_element(By.XPATH,'//iframe[@class="iframe_wrapper"]')
driver.switch_to.frame(iframe)
# 找到第一个广告并点击
ad = driver.find_element(By.XPATH,'//div[@class="ad-list"]//a')
ad.click()

可以看出我们导入新的方法,改变了一些语法,运行之后果然又出错了

这次应该是XPATH错了,不管了,由此可以看出人工智能生成的代码还是需要不断完善的。


三、进一步提出需求

如果我们发现人工智能给出的答案并不是我们需要的,或者说答案我们不满意,我们可以继续提出需求,比如上面的例子,我觉得写的不好,我们可以让它重新回答,点击这里的重新生成就行。

 


下面是重新生成的回答:


对于这个问题,我需要先了解一下您的具体需求和情况。如果您是在使用selenium模拟浏览器行为,可以按照以下步骤实现:

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
# 初始化浏览器
driver = webdriver.Chrome()
driver.maximize_window()  # 最大化浏览器窗口
# 打开百度贴吧
driver.get("https://tieba.baidu.com/")
# 等待广告出现
wait = WebDriverWait(driver, 10)
ad_element = wait.until(EC.presence_of_element_located((By.CLASS_NAME, 'ad_item')))
# 点击第一个广告
ad_element.click()
# 关闭浏览器
driver.quit()

上述代码中,我们使用了selenium库的WebDriverWait类来等待页面中的广告按钮元素(ad_item),并使用click()方法实现点击第一个广告。最后,我们使用quit()方法关闭浏览器。


需要注意的是,如果您要在生产环境中使用自动化程序,需要先确认这样的自动化操作是否符合相关网站的服务条款。此外,代码中的选择器可能需要根据实际情况做出相应的调整。



肉眼可见,第二次的代码和第一次的由很大的差别,我们也来运行一下,同样报错了。

我们可以用人工智能来查询是什么错误,我们提出问题:“ File "D:/Users/Administrator/PycharmProjects/pythonProject/venv/爬虫/AI.py", line 15, in <module>

   ad_element = wait.until(EC.presence_of_element_located((By.CLASS_NAME, 'ad_item')))是什么错误”,人工智能给出了回答

 

人工智能是这样回答的:“


这个错误是代表你的Python代码在运行时在第15行处出现了问题。具体来说,这个错误表示在等待过程中,WebDriver无法找到指定的元素。


根据代码可知,在第15行,你正在使用Selenium的wait方法来等待页面上的广告元素的加载。如果页面上没有这个元素,那么就会出现这个错误。因此,你需要检查一下页面是否加载成功,是否存在名为'ad_item'的元素。




其实还是定位错误,我们发现人工智能用的是selenium库的方法,而且两次都是用的这个方法,我们的小白笔记用的是requests方法,那么我可不可以提出需求,让人工智能使用requests方法来实现呢,答案是必须可以。人工只能之所以叫人工智能,而不是百度或者谷歌,就是因为它不是简单的输入查询,它可以向日常生活跟别人一样正常对话,这时我们就好像甲方,现在我们跟乙方的程序员提需求了:请使用requests方法来实现。

 


不知是不是我们提问的不够准确,人工智能并没有按照我们之前的提问给出针对性回答,它好像是详细介绍了requests方法,我们再调整一下提问方式。我们重新提问:“请用python代码编写代码,实现找到百度贴吧的广告子页面,点击第一个广告”,后我们继续提问:“请使用requests方法来实现我刚刚提出的问题”,这次给出了靠谱的答案。

 

好的,以下是使用requests方法实现获取百度搜索结果的示例代码:

import requests
query = "python"  # 搜索关键词
url = f"http://www.baidu.com/s?wd={query}"
response = requests.get(url)
if response.status_code == 200:
    # 解析响应内容,获取所有搜索结果的标题和链接
    search_results = []
    for item in response.html.find(".t a"):
        title = item.text
        href = item.attrs['href']
        if href.startswith("http"):
            search_results.append((title, href))
    # 打印搜索结果
    for i, result in enumerate(search_results):
        print(f"{i+1}. {result[0]}")
        print(f"   {result[1]}")
else:
    print("获取搜索结果失败")

这个示例代码使用requests库向百度发送了一个搜索“python”的请求,然后解析响应内容,获取了所有搜索结果的标题和链接,最后打印出来。注意:这里还使用了一个第三方库pyquery来解析html。如果你没有安装这个库,可以使用pip命令来安装(pip install pyquery)。



问题不大,但是估计运行还是错误的,就不演示了。


总结


下面再用人工智能写一首诗,看看我们的人工智能多么的伟大。


人工智能,妙用无穷

改变生活,越来越明显

智能家居,一切方便

智能安防,保家更稳


机器翻译,语言不难

智能客服,疑问都能解

自动驾驶,路上畅通

医疗辅助,疾病更防


智慧城市,交通更快

智能教育,学习更好

智能制造,生产更高效

人工智能,创新不停


科技进步,人类向前

人工智能,方向正确

未来美好,更多期待

智慧生活,还需努力!


相关文章
|
28天前
|
人工智能 IDE 程序员
一文梳理我们是如何打造出国内领先的 AI 编程助手「通义灵码」
大语言模型的革命性突破使智能编程成为了可能,通义灵码正是基于通义大模型打造的 AI 编程助手,通过 IDE 插件的形式提供代码补全、单元测试生成等功能,能达到毫秒级的响应速度。目前,通义灵码已在阿里云内部及多家企业中应用,阿里云也在探索多智能体产品,即 AI 程序员,助力数字世界的蓬勃发展,颠覆 IT 生产力。
12863 129
|
4天前
|
人工智能 缓存 Cloud Native
用 Higress AI 网关降低 AI 调用成本 - 阿里云天池云原生编程挑战赛参赛攻略
《Higress AI 网关挑战赛》正在火热进行中,Higress 社区邀请了目前位于排行榜 top5 的选手杨贝宁同学分享他的心得。本文是他整理的参赛攻略。
148 65
|
5天前
|
机器学习/深度学习 人工智能 算法
揭秘AI编程:从零开始的机器学习之旅
本文将带你走进人工智能的奇妙世界,一起探索机器学习的奥秘。我们将从最基础的概念入手,逐步深入到实际应用中,让你在轻松愉快的阅读过程中,对AI编程有一个全面而深刻的理解。无论你是编程新手,还是有一定基础的开发者,都能在这篇文章中找到你需要的信息和启示。让我们一起开启这场充满智慧和乐趣的旅程吧!
17 1
|
13天前
|
机器学习/深度学习 人工智能 自然语言处理
AI是如何在编程中提升效率的
在快速发展的科技时代,人工智能(AI)已从科幻概念变为现实,尤其在软件开发领域产生了深远影响。AI通过自然语言处理技术准确理解需求并自动生成初步代码框架,大幅减少需求分析与设计工作量。同时,智能代码补全、代码审查及自动化测试等工具显著提升了编码与测试效率,基于大数据分析和机器学习预测所需代码片段,自动发现并修正潜在错误,确保软件质量的同时减轻开发者负担。
|
14天前
|
存储 人工智能 自然语言处理
AI编程助手那些事儿
最近跟身边的程序员老杆子讨论需求时,惊奇的发现,他居然没使用AI编程助手。一时间有2个想法从大脑闪过,然后心里还带了一丝轻蔑。
AI编程助手那些事儿
|
20天前
|
人工智能 JavaScript 开发工具
C++中的AI编程助手添加
今天为大家推荐一款适配了 Viusal Studio(本文使用),VS Code(本文使用),JetBrains系列以及Vim等多种编译器环境的插件 Fitten Code,Fitten Code 是由非十大模型驱动的 AI 编程助手,它可以自动生成代码,提升开发效率,帮您调试 Bug,节省您的时间,另外还可以对话聊天,解决您编程碰到的问题。 Fitten Code免费且支持 80 多种语言:Python、C++、Javascript、Typescript、Java等。
67 8
|
1天前
|
人工智能 IDE 测试技术
Visual Studio版本的AI编程助手
Visual Studio 是一个出色的 IDE,可用于构建适用于 Windows、Mac、Linux、iOS 和 Android 的丰富、精美的跨平台应用程序。 使用一系列技术(例如 WinForms、WPF、WinUI、MAUI 或 Xamarin)构建丰富。 1、安装 点击上方工具栏拓展选项,选择管理拓展选项 接着在联机页面中搜索"FItten Code",并点击下载,下载完成后重启Visual Studio 在扩展选项中选中fitten,选择Open Chat Window进入登录界面,完成注册登录 2、智能补全 打开代码文件,输入一段代码,Fitten Code 就会为您
9 0
|
1月前
|
人工智能 IDE 测试技术
采用Visual Studio版本的AI编程助手
Visual Studio 是多平台IDE,用于构建Windows、Mac、Linux、iOS和Android应用。安装Fitten Code插件可增强其功能,如智能补全、AI问答、代码生成、翻译、注释自动生成、代码解释和测试用例创建。通过扩展商店搜索安装Fitten Code,登录后体验上述特性。支持VS Code、JetBrains IDE、Visual Studio和Vim。访问[https://code.fittentech.com/](https://code.fittentech.com/)获取更多信息。
46 4
|
2月前
|
人工智能 算法 定位技术
[AI aider] 打造终端AI搭档:Aider让编程更智能更有趣!
发现Aider,一个能在终端中与AI搭档编程的工具,让你的编程体验更智能、更有趣。
[AI aider] 打造终端AI搭档:Aider让编程更智能更有趣!
|
16天前
|
人工智能 机器人 数据库
字节推出「Coze扣子」AI Bot 开发平台,无需编程,让 Chatbot 搭建更快捷、低门槛!
字节推出「Coze扣子」AI Bot 开发平台,无需编程,让 Chatbot 搭建更快捷、低门槛!
53 0