ChatGPT教你学Python爬虫

奋斗吧
奋斗吧
擅长邻域:未填写

标签: ChatGPT教你学Python爬虫

2023-06-02 18:23:28 239浏览

“chatgpt作为一个编程助手,虽然不能帮我们解决一个复杂的业务需求,但在处理一些具体工具类需求上,能够快速生成我们需要的代码,尤其对一些编程初学者,不仅能借助chatgpt快速完成自己的小工具,还能在与chatgpt的交流中学到编程很多技巧,比如使用它编写Python爬虫代码。”使用ChatGPT编写爬虫代码的优势:语言表达能力:ChatGPT可以理解你对爬虫任务的需求和问题描述,并生成相应的...

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。

d771b05575d3a8447fb2118c164dd34d.png

指令:

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

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

6c82ebc082fe0c41265a62b57f30e152.png

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

继续在对话中提出需求:

42a1897285ac6a8847af2b778d958635.png

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

dbc3ad006149b0ef14a8d85d1dfac559.png

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

009f51217fb090b52f97ab58c3352137.png

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

e4017e9b6f36bc02387e0c9bdaab6917.png

最终生成的代码如下:

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、工具使用及副业知识,可以关注副业星球:

6fbd4ce5fd63b82a5ebc553802fb358e.png

好博客就要一起分享哦!分享海报

此处可发布评论

评论(0展开评论

暂无评论,快来写一下吧

展开评论

您可能感兴趣的博客

客服QQ 1913284695