“chatgpt作为一个编程助手,虽然不能帮我们解决一个复杂的业务需求,但在处理一些具体工具类需求上,能够快速生成我们需要的代码,尤其对一些编程初学者,不仅能借助chatgpt快速完成自己的小工具,还能在与chatgpt的交流中学到编程很多技巧,比如使用它编写Python爬虫代码。
”
使用ChatGPT编写爬虫代码的优势:
语言表达能力:ChatGPT可以理解你对爬虫任务的需求和问题描述,并生成相应的Python代码。它能够帮助你用更准确和自然的语言表达你的意图,从而生成更高质量的爬虫代码。
自动化代码生成:ChatGPT可以根据你提供的问题和要求,自动生成符合需求的爬虫代码。它能够快速生成骨架代码和常用的爬虫操作,节省你的时间和精力。
学习机会:与ChatGPT交互编写爬虫代码可以作为学习的机会。你可以通过与ChatGPT对话,了解编写爬虫的最佳实践、常见问题和技巧。这有助于提高你的爬虫技能和理解。
对于Python学习者来说,可以通过以下方式使用ChatGPT提高爬虫水平:
提出问题和需求:将你的爬虫问题和需求以自然语言的形式提供给ChatGPT。描述你希望爬取的网站、所需的数据和操作等。ChatGPT将为你生成相应的Python代码示例。
学习生成的代码:仔细阅读ChatGPT生成的代码示例,理解其结构、函数和操作。学习生成代码的基本逻辑和语法,这有助于你掌握爬虫编程的基本概念和技巧。
调试和优化:生成的代码可能需要进一步调试和优化,以适应具体的爬取任务和网站。学习如何分析代码问题、解决错误和改进代码质量。这将有助于你提高爬虫代码的稳定性和效率。
探索其他资源:ChatGPT是一个工具,但并不是唯一的资源。继续学习其他爬虫教程、文档和示例代码,深入了解爬虫框架和库的使用。结合ChatGPT生成的代码和其他资源,你将能够全面提高爬虫水平。
需要注意的是,ChatGPT生成的代码可能不是完美的,仍需自己进行测试、调整和验证。它只是一个辅助工具,而不是替代你自己学习和实践的方式。将ChatGPT作为学习和探索的工具,并与其他资源相结合,可以帮助你提高爬虫水平。
下面我们通过爬取京东的商品评论来学习一下ChatGPT在Python爬虫中的应用:
首先我们要分析一下我们要抓取的对象,开京东商城网站,进入一个具体商品的网页,找到商品评论板块,查看网页源代码并不能找到评论信息,说明网页是动态加载设计。所以直接通过页面和接口都没有办法抓取到需要的内容,这个时候可以应该通过模拟浏览器操作来抓取。直接把需求提给chatgpt。
指令:
你是一个Python专家,擅长爬虫代码编写,这个网站的商品评价是动态加载的,请用Python代码爬取这个网站https://item.jd.com/100038004389.html的商品评价
安装好需要的库后,直接复制代码到编辑器运行,修改ChromeDriver路径为本地实际的地址,然后运行代码,可以看到直接获取到了我们需要的内容:
但是这只是抓取了一页的请求,可以继续优化,获取多页的内容,并且保存在本地文件中。
继续在对话中提出需求:
生成代码后,再次复制到编辑器中(注意修改ChromeDriver路径),运行后报错:
直接把报错发送给chatgpt,分析了错误的原因,立马给出了解决方案,重新生成一份代码。
这次给出了最终的代码,复制到编辑器中运行,成功,获取到了5页的商品评论,并且保存到了本地文件product_reviews.csv中。
最终生成的代码如下:
import csv
import time
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.common.by import By
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.common.keys import Keys
# 设置ChromeDriver的路径
webdriver_service = Service('path/to/chromedriver')
# 创建Chrome浏览器选项
chrome_options = Options()
chrome_options.add_argument('--headless') # 无头模式,可选
chrome_options.add_argument('--no-sandbox')
# 创建Chrome浏览器驱动
driver = webdriver.Chrome(service=webdriver_service, options=chrome_options)
url = 'https://item.jd.com/100038004389.html'
page_count = 5 # 想要获取的评价页数
# 使用Selenium打开页面
driver.get(url)
# 等待页面加载完成
driver.implicitly_wait(10)
# 创建CSV文件
csv_file = open('product_reviews.csv', 'w', newline='', encoding='utf-8')
csv_writer = csv.writer(csv_file)
csv_writer.writerow(['Content'])
# 获取评价信息
for _ in range(page_count):
# 模拟滚动到底部,以加载更多评价内容
actions = ActionChains(driver)
actions.send_keys(Keys.END)
actions.perform()
# 等待加载更多评价
time.sleep(2)
# 提取评价信息
evaluations = driver.find_elements(By.CSS_SELECTOR, '.comment-item')
for evaluation in evaluations:
# 提取评价内容
content = evaluation.find_element(By.CSS_SELECTOR, '.comment-con').text.strip()
csv_writer.writerow([content])
# 点击下一页按钮
next_button = driver.find_element(By.CSS_SELECTOR, '.ui-pager-next')
driver.execute_script("arguments[0].click();", next_button)
# 等待页面加载完成
driver.implicitly_wait(10)
# 关闭浏览器
driver.quit()
# 关闭CSV文件
csv_file.close()
这段代码,如果初学者自己去写,可能半天一天也不一定能完成,现在只需要20分钟就能搞定。
有时候,生成的代码不一定可用,一方面可以多试几次,把遇到的问题告诉它,问题不仅会得到解决,还能了解产品问题的原因是什么。
更多AI、工具使用及副业知识,可以关注副业星球: