现在有一个这样的需求,要爬取雪球网上A股的股票名称、代码和总市值这些信息并把它保存到execl表格中。对于一个新手想学习爬虫,如何通过chatGPT来完成这个任务呢?

首先,我们把自己的需求详细的描述向ChatGPT提问,问题描写的越详细越好,例如: 然后,我们把代码复制到编辑器运行,如下图: 没有任何返回值,估计是出错了,我们先打印一下content的值看看,如下图: 的确是出错了。我在把出错的问题进行描述,再向ChatGPT进行提问。如下图: 上述的回答中解析了为什么会出现这种错误,并给出了解决方法。我们采用第一种方式,为代码添加请求头,再次执行。 这次就成功把网页的内容返回了。但是页面中的内容并没有我们想要的信息。

通过观察爬取的页面,刚打开页面是没有我们想要的信息,当我们点击了开始选股,才加载数据。

没有点击的

点击后的结果

通过浏览器开发者工具,发现点击后,是请求以下这个地址,获取结果进行加载的。

弄清楚了请求地址,我们再次向chatGPT提问。

上述代码,它没有添加请求头,所以,我们要自行添加请求头

关键代码如下:

import requests

url = 'https://xueqiu.com/service/screener/screen?category=CN&exchange=sh_sz&areacode=&indcode=&order_by=symbol&order=desc&page=1&size=30&only_count=0&current=&pct=&mc=&volume=&_=1684212843562'

# 发送 HTTP 请求获取 JSON 数据headers = {    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'}response = requests.get(url, headers=headers)data = response.json()

# 提取股票信息stocks = data['data']['list']

# 遍历股票信息并输出股票名称和代码for stock in stocks:    name = stock['name']    code = stock['symbol']    print(name, code)

执行结果如下:

上述代码只是爬取单页的,现在我们要爬取多页的数据,把这个需求描述发给chatGPT,看它是如何解决的。

上述代码,它没有添加请求头,所以,我们要自行添加请求头

关键代码:

import requests

def crawl_stock_data(page_num):    url = f'https://xueqiu.com/service/screener/screen?category=CN&exchange=sh_sz&areacode=&indcode=&order_by=symbol&order=desc&page={page_num}&size=30&only_count=0&current=&pct=&mc=&volume=&_=1684212843562'

    # 发送 HTTP 请求获取 JSON 数据    response = requests.get(url)    data = response.json()

    # 提取股票信息    stocks = data['data']['list']

    # 遍历股票信息并输出股票名称和代码    for stock in stocks:        name = stock['name']        code = stock['symbol']        print(name, code)

# 执行多页爬取数据total_pages = 10  # 假设要爬取10页的数据for page in range(1, total_pages + 1):    crawl_stock_data(page)

下面就是把爬取的数据保存到execl中,再次把需求描述给chatGPT,看它是如何回复的: 这次又忘记添加请求头,于是,我提示它加上请求头。 关键代码如下:

import requestsimport pandas as pd

def crawl_stock_data(page_num):    url = f'https://xueqiu.com/service/screener/screen?category=CN&exchange=sh_sz&areacode=&indcode=&order_by=symbol&order=desc&page={page_num}&size=30&only_count=0&current=&pct=&mc=&volume=&_=1684212843562'

    headers = {        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'    }

    # 发送 HTTP 请求获取 JSON 数据    response = requests.get(url, headers=headers)    data = response.json()

    # 提取股票信息    stocks = data['data']['list']    stocks_list =[{'name': item.get("name"),'symbol':item.get("symbol"), 'volume':item.get("volume")} for item in stocks ]    # 创建DataFrame保存股票数据    df = pd.DataFrame(stocks_list, columns=['name', 'symbol',"volume"])    return df

# 执行多页爬取数据total_pages = 50  # 假设要爬取10页的数据dfs = []for page in range(1, total_pages + 1):    df = crawl_stock_data(page)    print(df)    dfs.append(df)

result_df = pd.concat(dfs, ignore_index=True)# 保存数据到Excel文件result_df.to_excel('stock_data.xlsx', index=False)

执行成功的结果如下:

代码是完成了我们的需求,但是代码缺乏异常捕捉,如果代码出现错误后,会整个代码停止执行。

总结

利用chatGPT学习爬虫是一个非常好的办法,只要我们把需求和问题向它描述,它都能分析错误和给出解决方法。大大的节省了收集资料的时间,提高了学习的效率。

本文由 mdnice 多平台发布

看ChatGPT是如何教我爬取上千家上市公司的股票代码相关推荐

  1. 阿凡达时隔十年重映,王者归来还是炒冷饭?Python爬取上千条评论并分析

    [CSDN 编者按]<阿凡达>十年后再次重映,果不其然话题量十足,可能这就是神级影片的召唤力吧.在怀旧的氛围中,我们得以重新审阅这部曾经的现象级.划时代的作品. 作者 | 刘早起      ...

  2. python爬虫爬取新闻实战01:小白如何迅速学会爬虫爬取上千条新闻

    爬虫爬取新闻实战01:小白如何迅速学会爬虫爬取千条新闻 文章目录 爬虫爬取新闻实战01:小白如何迅速学会爬虫爬取千条新闻 1.前言 2 .爬虫原理介绍 2.1.图片爬虫 2.2 文字爬虫 3.用八爪鱼 ...

  3. 爬取上千个年度基金后,才知道这有多坑,千万别被人当韭菜给割了

    今天来分析一下2021年的基金市场,分析一下今年表现最好的那些基金有什么特征?作为理财小白的你,如何在2022年如何科学理性地投资从而避免被当做韭菜收割呢? 基金介绍 首先对于基金,可以大致分为:货币 ...

  4. 剧荒不慌 | 手把手教你爬取+DIY豆瓣电影新榜单

    作者 | 吹牛Z 来源 | 数据不吹牛(ID:shujubuchuiniu) 本文以豆瓣电影(非TOP250)为例,从数据爬取.清洗与分析三个维度入手,详解和还原数据爬取到分析的全链路.阅读全文大概需 ...

  5. 手把手教你爬取任意日期全部股票分时数据~

    点击上方"Python爬虫与数据挖掘",进行关注 回复"书籍"即可获赠Python从入门到进阶共10本电子书 今 日 鸡 汤 独怜幽草涧边生,上有黄鹂深树鸣. ...

  6. 【爬虫】Yhen手把手教你爬取表情包,让你成为斗图界最靓的仔!

    以下内容为本人原创,欢迎大家观看学习,禁止用于商业用途,转载请说明出处,谢谢合作! ·作者:@Yhen ·原文网站:CSDN ·原文链接:https://blog.csdn.net/Yhen1/art ...

  7. 100行代码教你爬取斗图网(Python多线程队列)

    100行代码教你爬取斗图网(Python多线程队列) 前言 根据之前写的两篇文章,想必大家对多线程和队列有了一个初步的了解,今天这篇文章就来实战一下,用多线程 + 队列 爬取斗图网的全网图片. 你还在 ...

  8. 手把手教你爬取PC端『某酷视频』个人历史播放数据,并可视化展示

    大家好,我是阿辰,今天手把手教你爬取PC端『某酷视频』个人历史播放数据,并可视化展示 上次有粉丝说,那个是ios手机,安卓手机现在需要root权限才可以安装证书,那么今天就不以手机为例,以电脑PC端为 ...

  9. python爬取二手房信息_刚刚接触PythonR?教你爬取分析赶集网北京二手房数据(附详细代码)...

    原标题:刚刚接触Python&R?教你爬取分析赶集网北京二手房数据(附详细代码) 源 /数据森麟文 /徐涛 前言: 本文主要分为两部分:Python爬取赶集网北京二手房数据&R对爬取的 ...

最新文章

  1. python判断是否回文_对python判断是否回文数的实例详解
  2. 华为AR28-31配置光纤接入
  3. Python 【第十三章】 Django 之 FORM
  4. git提交代码到github时出现everything up-to-date,但是代码没有上传成功
  5. 随机地址生成器_随机连接神经网络性能超过人工设计!何恺明等人发布新研究...
  6. mysql变更AUTO_INCREMENT值
  7. SQL 单一用户(解决)
  8. python数据分析师书籍_如何自学成为数据分析师
  9. WEB安全基础-XSS基础
  10. Opencv实现的简易绘图工具
  11. Java入门基础知识
  12. 2021年Delphi第26届应用软件开发展示挑战赛的获胜者名单
  13. 小学三年级英语听力测试软件,小学三年级英语听力练习题及参考答案
  14. winrar解压时出现诊断信息怎么办?
  15. 把rmvb格式转化为avi格式
  16. 华为笔记本重装系统步骤
  17. android室内地图,概述-Android 室内地图SDK | 高德地图API
  18. 上海BFC外滩金融中心潮流新店,aaddd揭秘全新生活美学
  19. 视觉软件 VisionPro 定位引导3(卡尺CogFindLineTool工具以及辅助工具)
  20. 技术人的“灵魂三问”,阿里工程师如何解答?

热门文章

  1. python面向对象练习02
  2. 个人库的第二个版本,将Zepto封装了进去
  3. 程序猿更喜欢杨超越吗?
  4. 情景分析通用—海量数据中统计最热门查询TOP10
  5. 江苏省2023年普通高等学校“专转本”选拔工作实施办法的通知
  6. 几何非线性中的几个重要概念
  7. Axis2介绍和例子
  8. Simulink的Variant Model和Variant Subsystem用法
  9. 修改phpmyadmin配置mysql端口号
  10. 数十万视频创作人都在使用的制作工具