前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >ChatGPT教你学Python爬虫

ChatGPT教你学Python爬虫

作者头像
吾非同
发布2023-09-19 13:01:16
4310
发布2023-09-19 13:01:16
举报
文章被收录于专栏:吾非同吾非同

“chatgpt作为一个编程助手,虽然不能帮我们解决一个复杂的业务需求,但在处理一些具体工具类需求上,能够快速生成我们需要的代码,尤其对一些编程初学者,不仅能借助chatgpt快速完成自己的小工具,还能在与chatgpt的交流中学到编程很多技巧,比如使用它编写Python爬虫代码。 ”

使用ChatGPT编写爬虫代码的优势:
  1. 语言表达能力:ChatGPT可以理解你对爬虫任务的需求和问题描述,并生成相应的Python代码。它能够帮助你用更准确和自然的语言表达你的意图,从而生成更高质量的爬虫代码。
  2. 自动化代码生成:ChatGPT可以根据你提供的问题和要求,自动生成符合需求的爬虫代码。它能够快速生成骨架代码和常用的爬虫操作,节省你的时间和精力。
  3. 学习机会:与ChatGPT交互编写爬虫代码可以作为学习的机会。你可以通过与ChatGPT对话,了解编写爬虫的最佳实践、常见问题和技巧。这有助于提高你的爬虫技能和理解。
对于Python学习者来说,可以通过以下方式使用ChatGPT提高爬虫水平:
  1. 提出问题和需求:将你的爬虫问题和需求以自然语言的形式提供给ChatGPT。描述你希望爬取的网站、所需的数据和操作等。ChatGPT将为你生成相应的Python代码示例。
  2. 学习生成的代码:仔细阅读ChatGPT生成的代码示例,理解其结构、函数和操作。学习生成代码的基本逻辑和语法,这有助于你掌握爬虫编程的基本概念和技巧。
  3. 调试和优化:生成的代码可能需要进一步调试和优化,以适应具体的爬取任务和网站。学习如何分析代码问题、解决错误和改进代码质量。这将有助于你提高爬虫代码的稳定性和效率。
  4. 探索其他资源:ChatGPT是一个工具,但并不是唯一的资源。继续学习其他爬虫教程、文档和示例代码,深入了解爬虫框架和库的使用。结合ChatGPT生成的代码和其他资源,你将能够全面提高爬虫水平。

需要注意的是,ChatGPT生成的代码可能不是完美的,仍需自己进行测试、调整和验证。它只是一个辅助工具,而不是替代你自己学习和实践的方式。将ChatGPT作为学习和探索的工具,并与其他资源相结合,可以帮助你提高爬虫水平。

下面我们通过爬取京东的商品评论来学习一下ChatGPT在Python爬虫中的应用:

首先我们要分析一下我们要抓取的对象,开京东商城网站,进入一个具体商品的网页,找到商品评论板块,查看网页源代码并不能找到评论信息,说明网页是动态加载设计。所以直接通过页面和接口都没有办法抓取到需要的内容,这个时候可以应该通过模拟浏览器操作来抓取。直接把需求提给chatgpt。

指令:

代码语言:javascript
复制
你是一个Python专家,擅长爬虫代码编写,这个网站的商品评价是动态加载的,请用Python代码爬取这个网站https://item.jd.com/100038004389.html的商品评价

安装好需要的库后,直接复制代码到编辑器运行,修改ChromeDriver路径为本地实际的地址,然后运行代码,可以看到直接获取到了我们需要的内容:

但是这只是抓取了一页的请求,可以继续优化,获取多页的内容,并且保存在本地文件中。

继续在对话中提出需求:

生成代码后,再次复制到编辑器中(注意修改ChromeDriver路径),运行后报错:

直接把报错发送给chatgpt,分析了错误的原因,立马给出了解决方案,重新生成一份代码。

这次给出了最终的代码,复制到编辑器中运行,成功,获取到了5页的商品评论,并且保存到了本地文件product_reviews.csv中。

最终生成的代码如下:

代码语言:javascript
复制
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分钟就能搞定。

有时候,生成的代码不一定可用,一方面可以多试几次,把遇到的问题告诉它,问题不仅会得到解决,还能了解产品问题的原因是什么。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2023-06-01 17:15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 吾非同 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 使用ChatGPT编写爬虫代码的优势:
  • 对于Python学习者来说,可以通过以下方式使用ChatGPT提高爬虫水平:
  • 下面我们通过爬取京东的商品评论来学习一下ChatGPT在Python爬虫中的应用:
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档