From 2272ea0a0910295294e6d23c51c93f1adb04efa6 Mon Sep 17 00:00:00 2001 From: pw4e8vz7f <2907813330@qq.com> Date: Fri, 15 Apr 2022 23:44:47 +0800 Subject: [PATCH] ADD file via upload --- 杜小福爬虫——股票.ipynb | 252 ++++++++++++++++++++++++++++++ 1 file changed, 252 insertions(+) create mode 100644 杜小福爬虫——股票.ipynb diff --git a/杜小福爬虫——股票.ipynb b/杜小福爬虫——股票.ipynb new file mode 100644 index 0000000..7d3265a --- /dev/null +++ b/杜小福爬虫——股票.ipynb @@ -0,0 +1,252 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 38, + "metadata": {}, + "outputs": [], + "source": [ + "import requests # 发送网络请求\n", + "\n", + "import csv" + ] + }, + { + "cell_type": "code", + "execution_count": 39, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "SH600056 中国医药 27.79 1.18 4.43 135.31 126489940 3465534285 11.84 32.706 1.323 29693212990\n", + "SH600519 贵州茅台 1801.3 -7.7 -0.43 -12.13 1549006 2799230789 0.12 43.153 1.203 2262789097140\n", + "SH601899 紫金矿业 12.44 -0.3 -2.35 28.25 220647700 2785724000 1.08 16.983 1.606 327536644266\n", + "SH600096 云天化 28.6 -0.81 -2.75 45.77 81714487 2358092124 4.77 11.142 0 52506546693\n", + "SH601012 隆基股份 66.4 -0.63 -0.94 -22.97 35590010 2338899022 0.66 36.908 0.267 359420059811\n", + "SH600048 保利发展 19.31 0.38 2.01 23.54 109667516 2119530050 0.92 7.877 3.78 231146178093\n", + "SH601888 中国中免 184.6 3.02 1.66 -15.87 10907164 1992246853 0.56 31.461 0.542 360426985422\n", + "SH600740 山西焦化 7.59 0.04 0.53 22.22 247999006 1959437667 9.68 9.65 2.022 19446499559\n", + "SH601668 中国建筑 6.07 0.06 1 21.4 319620566 1950064709 0.78 4.938 3.538 254581013183\n", + "SH601666 平煤股份 16.57 -0.65 -3.77 97.97 102735061 1808855708 4.48 13.128 4.581 38363128374\n", + "SH600196 复星医药 47.89 1.49 3.21 -2.15 37386469 1772654944 1.86 25.931 1.17 122737211320\n", + "SH601696 中银证券 14.13 -0.45 -3.09 5.06 124333678 1751910322 8.56 40.877 0.256 39253140000\n", + "SH600256 广汇能源 9.02 -0.48 -5.05 37.92 183496683 1706579026 2.79 9.234 4.43 59223111354\n", + "SH600660 福耀玻璃 35.08 3.19 10 -25.58 48793100 1670192482 2.44 28.952 2.866 91549803103\n", + "SH600141 兴发集团 37.89 -1.23 -3.14 0.03 43490813 1669519251 4.46 9.927 1.316 42123247481\n", + "SH601699 潞安环能 18.65 0.65 3.61 64.9 86637303 1664740001 2.9 8.727 1.04 55789781580\n", + "SH600188 兖矿能源 37.13 -2.77 -6.94 57.8 43081961 1646531261 1.44 11.301 5.386 183745366153\n", + "SH600546 山煤国际 15.14 -0.46 -2.95 84.41 101670873 1604518115 5.13 15.515 0.433 30014385960\n", + "SH601918 新集能源 6.47 0.29 4.69 42.51 241381424 1594313956 9.32 7.424 0.537 16760805446\n", + "SH601898 中煤能源 10.15 -0.01 -0.1 61.37 150681081 1549203896 1.65 10.132 2.963 134575433510\n", + "SH600062 华润双鹤 20.39 0.6 3.03 52.51 76374509 1535893258 7.32 22.734 2.341 21271616907\n", + "SH603259 药明康德 110.42 4.09 3.85 -6.88 13985195 1511051723 0.55 64.055 0.47 326381201505\n", + "SH601166 兴业银行 22.2 0.52 2.4 16.6 68866758 1508084942 0.33 5.583 4.656 461187034672\n", + "SH603799 华友钴业 81.08 -1.82 -2.2 -26.5 18581264 1478411392 1.53 34.777 0.245 99030810626\n", + "SH600199 金种子酒 27.18 -0.97 -3.45 60.73 51882303 1441171861 7.89 592.55 0 17878917676\n", + "SH600581 八一钢铁 8.08 0.22 2.8 30.11 178927787 1419759922 11.67 10.46 0 12385814790\n", + "SH601225 陕西煤业 17.73 -0.62 -3.38 45.33 75844340 1378356944 0.78 9.73 4.649 171892350000\n", + "SH600123 兰花科创 15.31 -0.33 -2.11 63.39 86232415 1349104132 7.55 11.38 0.651 17490144000\n", + "SH601101 昊华能源 11.03 -0.28 -2.48 49.05 115551577 1344741430 9.63 10.743 0.272 13235980940\n", + "SH600111 北方稀土 35.23 -0.19 -0.54 -23.08 38339913 1340899986 1.06 24.999 1.271 127992915180\n", + "SH600036 招商银行 46.88 1.12 2.45 -3.76 27940614 1288662361 0.14 9.859 3.265 1182306361775\n", + "SH601088 中国神华 31.29 -0.99 -3.07 38.94 39951789 1273237023 0.24 12.367 8.099 621685989392\n", + "SH603986 兆易创新 133.62 3.02 2.31 -24.01 9377294 1241036577 1.52 48.055 0.298 89186954169\n", + "SH600030 中信证券 20.91 -0.06 -0.29 -16.02 58533621 1224853289 0.51 13.435 2.581 309897634194\n", + "SH600502 安徽建工 5.68 -0.37 -6.12 36.87 205560483 1207553335 11.94 8.969 4.355 9776190345\n", + "SH600348 华阳股份 13.65 0.22 1.64 15.19 83237074 1151770126 3.46 9.304 3.658 32828250000\n", + "SH600313 农发种业 7.99 0.31 4.04 51.33 138904607 1103523139 13.63 157.719 0 8646767317\n", + "SH600809 山西汾酒 265.35 -7.17 -2.63 -15.97 4087890 1093136863 0.34 59.475 0.054 323757348610\n", + "SH600905 三峡能源 5.67 0.01 0.18 -24.5 191602833 1075489792 2.24 33.824 0.665 162280786500\n", + "SH601001 晋控煤业 15.27 -0.81 -5.04 58.9 66740571 1075249606 3.99 9.435 0 25557399000\n", + "SH600622 光大嘉宝 4.71 0.2 4.43 61.3 223537215 1075151029 14.91 24.577 0 7063518243\n", + "SH603648 畅联股份 14.34 1 7.5 61.67 76069993 1068456572 20.99 37.874 1.299 5196999552\n", + "SH601318 中国平安 48.56 0.37 0.77 -3.67 21945080 1063122797 0.2 8.736 4.9 887688522870\n", + "SH600075 新疆天业 8.44 0.53 6.7 2.68 125731907 1050430477 9.91 8.022 0.981 14410069954\n", + "SH600197 伊力特 30.85 -0.06 -0.19 13.75 33271509 1037003486 7.05 36.041 1.299 14559739684\n", + "SH600887 伊利股份 38.84 0.14 0.36 -6.32 26423042 1029373504 0.44 27.647 2 248581084855\n", + "SH600596 新安股份 28.44 0.67 2.41 13.81 35884299 1013959330 4.88 8.765 1.759 23275022578\n", + "SH600010 包钢股份 2.27 0.04 1.79 -18.64 441373962 999182267 1.39 36.1 0.837 103478024111\n", + "SH600031 三一重工 18.6 -0.15 -0.8 -18.42 53849053 997062802 0.63 10.168 3.223 157975119991\n", + "SH603538 美诺华 53.23 2.02 3.94 49.9 18591747 974781387 12.34 50.491 0 8114307689\n", + "SH601456 国联证券 11.18 -1.24 -9.98 -19.97 84498511 970881455 8.54 35.658 0.894 31659224018\n", + "SH600383 金地集团 15.32 0.37 2.47 18.12 62996932 968820042 1.4 7.937 4.605 69163420323\n", + "SH600307 酒钢宏兴 2.58 0.22 9.32 17.27 380397763 964213942 6.07 6.142 0 16159462154\n", + "SH601658 邮储银行 5.67 0.11 1.98 11.18 170744320 949630539 1.51 6.901 4.34 523817096320\n", + "SH600011 华能国际 6.44 0.44 7.33 -33.54 152726990 937741143 1.39 -9.436 0 101095721232\n", + "SH600157 永泰能源 1.71 0.03 1.79 -6.04 545657762 933983258 2.46 7.595 0 37992376688\n", + "SH600603 广汇物流 5.65 -0.63 -10.03 42.32 158173998 930300094 12.62 12.396 0 7101783586\n", + "SH601689 拓普集团 51.83 2.83 5.78 -2.21 18993150 919148158 1.72 56.334 0.538 57119073827\n", + "SH600989 宝丰能源 16.22 0.92 6.01 -6.57 57260887 916135275 2.87 16.823 1.725 118947099200\n", + "SH600276 恒瑞医药 34.15 0.33 0.98 -32.66 26684150 910915949 0.42 34.715 0.489 217842927657\n", + "SH600988 赤峰黄金 21.11 -0.39 -1.81 41.68 42679987 904285387 2.78 42.407 0 35125169190\n", + "SH600328 中盐化工 19.63 -0.5 -2.48 19.62 44111407 900448815 7.88 12.631 1.166 18798955941\n", + "SH601919 中远海控 15.28 -0.19 -1.23 -18.25 57627336 881872625 0.46 2.74 5.697 244696743438\n", + "SH600331 宏达股份 3.84 -0.2 -4.95 20.38 219160475 878461430 10.79 -4.972 0 7802880000\n", + "SH600782 新钢股份 6.68 0.13 1.98 26.52 132690819 873474700 4.16 5.012 4.491 21300667609\n", + "SH600460 士兰微 40.76 -0.41 -1 -24.8 20828989 850893932 1.56 38.021 0.245 57719088402\n", + "SH601665 齐鲁银行 6.4 0.18 2.89 14.7 131276039 830615159 28.66 10.555 2.808 29317333338\n", + "SH603077 和邦生物 3.77 0.01 0.27 10.56 220686494 829827513 2.5 11.042 0.398 33293813360\n", + "SH600657 信达地产 6.54 -0.13 -1.95 75.34 123863545 814500101 4.34 22.878 1.067 18651286011\n", + "SH600618 氯碱化工 14.39 -0.49 -3.29 15.95 53229220 800672232 7.1 9.405 2.778 16640595655\n", + "SH600395 盘江股份 9.75 -0.48 -4.69 34.11 78672568 794934906 4.75 15.102 4.103 16136755645\n", + "SH600438 通威股份 39.31 -0.03 -0.08 -12.57 20183067 784048916 0.45 28.449 0.612 176955859113\n", + "SH600703 三安光电 21.61 -0.1 -0.46 -42.47 36443886 784026869 0.89 71.006 0.693 96798565666\n", + "SH600497 驰宏锌锗 5.97 -0.03 -0.5 19.64 131579750 783974177 2.58 33.925 0.838 30395010661\n", + "SH600997 开滦股份 8.88 -0.18 -1.99 24.72 85478750 783780131 5.38 7.495 3.146 14099662677\n", + "SH600397 安源煤业 5.03 0.46 10.07 74.65 154175500 774457650 15.57 -177.031 0 4979498206\n", + "SH603260 合盛硅业 92.68 3.92 4.42 -29.77 8457611 768861313 0.9 17.533 0.273 99553665676\n", + "SH600381 青海春天 17.04 -1.49 -8.04 102.14 43578742 766465252 7.42 -36.335 0 10003515027\n", + "SH600787 中储股份 5.81 -0.53 -8.36 -6.89 128194708 763294965 5.88 14.533 2.757 12780844002\n", + "SH601615 明阳智能 22.8 -0.62 -2.65 -12.64 33229409 754453102 1.72 15.478 0.969 47977030097\n", + "SH600958 东方证券 10.91 -0.04 -0.37 -25.98 68941974 754270422 1.16 14.244 0 76300784811\n", + "SH601015 陕西黑猫 6.66 0.04 0.6 2.78 108941009 749027757 5.33 8.906 0 13603034276\n", + "SH600791 京能置业 6.54 0.32 5.14 64.32 111054641 742588081 24.55 -95.497 0 2961835200\n", + "SH603501 韦尔股份 171.4 -1.03 -0.6 -44.85 4356025 740573222 0.55 33.448 0.182 150302237566\n", + "SH600985 淮北矿业 16.75 -0.04 -0.24 49.82 42593620 731999506 1.72 8.693 4.184 41557351744\n", + "SH601600 中国铝业 5.78 -0.09 -1.53 -5.09 124250756 725873039 0.95 19.437 0.553 98391049657\n", + "SH601669 中国电建 7.81 -0.14 -1.76 -3.34 92233933 722998740 0.83 14.09 1.185 119485463537\n", + "SH601288 农业银行 3.08 0.01 0.33 4.76 231884252 712969655 0.08 4.455 6.736 1077947744329\n", + "SH601390 中国中铁 6.83 0.02 0.29 17.96 102450612 704379193 0.5 6.128 2.861 168985494655\n", + "SH603051 鹿山新材 55.41 4.21 8.22 114.85 12852322 701382940 55.87 44.721 None 5098274100\n", + "SH603993 洛阳钼业 5.58 0.08 1.45 0 126006657 700394362 0.71 23.647 1.275 120523762453\n", + "SH601933 永辉超市 4.53 -0.14 -3 11.85 151397589 698727016 1.67 -17.046 0.474 41109917578\n", + "SH600019 宝钢股份 7.45 0.09 1.22 4.05 93644347 697063023 0.42 6.292 8.713 165899666048\n", + "SH600693 东百集团 5.91 -0.66 -10.05 46.29 112502312 693726219 12.54 80.161 0 5308534265\n", + "SH600309 万华化学 85.03 -1.57 -1.81 -15.81 8006781 684029725 0.26 10.839 2.939 266972655609\n", + "SH600470 六国化工 9.19 -0.61 -6.22 29.62 72328660 676567537 13.87 20.267 0 4793504000\n", + "SH600763 通策医疗 149.4 2.61 1.78 -24.92 4488744 664212298 1.4 67.426 0 47903616000\n", + "SH600971 恒源煤电 8.51 -0.12 -1.39 31.73 75675293 659316005 6.31 7.371 5.869 10212041563\n", + "SH600745 闻泰科技 70.12 1.54 2.25 -45.77 9586786 659178815 1.02 39.801 0.235 87393291031\n", + "SH601155 新城控股 30.91 0.9 3 6.11 21052656 652798599 0.93 5.548 0 69967447556\n", + "SH600884 杉杉股份 23.95 -0.89 -3.58 -26.91 27089302 646818040 1.64 19.482 0.285 51322932515\n", + "SH601168 西部矿业 14.13 -0.38 -2.62 3.82 44000319 632089467 1.85 14.44 0.851 33671790000\n", + "SH600702 舍得酒业 156.2 -1.57 -1 -31.28 4032265 631396566 1.22 41.678 0.511 51869486920\n", + "SH601398 工商银行 4.78 0.01 0.21 3.24 130684526 624351307 0.05 4.891 6.136 1703621908885\n", + "SH600153 建发股份 14.49 0.53 3.8 59.76 43002070 623505525 1.52 8.279 3.444 41490992460\n", + "SH603345 安井食品 124.1 5.28 4.44 -27.33 5079575 621965106 2.1 50.662 0.496 36399675691\n", + "SH601009 南京银行 11.93 0.63 5.58 33.15 53231149 617202539 0.63 7.794 3.314 119484014190\n", + "SH600399 抚顺特钢 12.85 0.95 7.98 -48.12 50164820 617035072 2.54 32.273 0 25341485000\n", + "SH601607 上海医药 19.63 0.35 1.82 -1.21 31421347 615642276 1.63 14.25 1.642 72542807298\n", + "SH600893 航发动力 38.26 0.18 0.47 -39.71 16068490 611015837 0.69 85.874 0.352 101985635546\n", + "SH603122 合富中国 17.07 1.55 9.99 307.4 37064885 608908959 37.25 84.691 1.054 6794758445\n", + "SH600941 中国移动 65.41 -2.24 -3.31 13.6 9029551 592961214 2.25 12.051 3.038 1397342498633\n", + "SH603229 奥翔药业 74.5 3.5 4.93 104.61 7926982 589569184 2.8 163.425 0.084 21385049627\n", + "SH600758 辽宁能源 4.68 0.35 8.08 23.16 125749284 585257598 9.52 -189.338 0 6187041404\n", + "SH600598 北大荒 15.77 -0.45 -2.77 8.31 36630217 584575695 2.06 32.696 2.541 28034012165\n", + "SH600318 新力金融 7.4 -0.28 -3.65 -40.32 78080156 584281879 15.26 -12.437 0 3794184477\n", + "SH600906 财达证券 9.83 -1.05 -9.65 -22.96 56933381 579997826 11.39 44.374 0.812 31898350000\n", + "SH603659 璞泰来 124.45 -4.75 -3.68 -22.51 4679945 578867482 0.68 42.192 0.405 86416031429\n", + "SH601789 宁波建工 6.45 -0.33 -4.87 72.92 88531701 577150188 8.15 17.806 1.397 7009850906\n", + "SH600089 特变电工 19.79 0.07 0.35 -6.52 28857383 568869944 0.76 10.349 2.925 75006302409\n" + ] + } + ], + "source": [ + "file = open('data2.csv', mode='a', encoding='utf-8', newline='')\n", + "csv_write = csv.DictWriter(file, fieldnames=['股票代码','股票名称','当前价','涨跌额','涨跌幅','年初至今','成交量','成交额','换手率','市盈率(TTM)','股息率','市值'])\n", + "csv_write.writeheader()\n", + "\n", + "for page in range(1, 5):\n", + " url = f'https://xueqiu.com/service/v5/stock/screener/quote/list?page={page}&size=30&order=desc&order_by=amount&exchange=CN&market=CN&type=sha&_=1637908787379'\n", + " headers = {\n", + " # 浏览器伪装\n", + " 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.45 Safari/537.36'\n", + " }\n", + " response = requests.get(url, headers=headers)\n", + " json_data = response.json()\n", + " # 数据解析(筛选数据)\n", + " data_list = json_data['data']['list']\n", + " for data in data_list:\n", + " data1 = data['symbol']\n", + " data2 = data['name']\n", + " data3 = data['current']\n", + " data4 = data['chg']\n", + " data5 = data['percent']\n", + " data6 = data['current_year_percent']\n", + " data7 = data['volume']\n", + " data8 = data['amount']\n", + " data9 = data['turnover_rate']\n", + " data10 = data['pe_ttm']\n", + " data11 = data['dividend_yield']\n", + " data12 = data['market_capital']\n", + " print(data1, data2, data3, data4, data5, data6, data7, data8, data9, data10, data11, data12)\n", + " data_dict = {\n", + " '股票代码': data1,\n", + " '股票名称': data2,\n", + " '当前价': data3,\n", + " '涨跌额': data4,\n", + " '涨跌幅': data5,\n", + " '年初至今': data6,\n", + " '成交量': data7,\n", + " '成交额': data8,\n", + " '换手率': data9,\n", + " '市盈率(TTM)': data10,\n", + " '股息率': data11,\n", + " '市值': data12,\n", + " }\n", + " csv_write.writerow(data_dict)\n", + "file.close()" + ] + }, + { + "cell_type": "code", + "execution_count": 40, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "import pandas as pd \n", + "import matplotlib.pyplot as plt\n", + "df = pd.read_csv('data3.csv')\n", + "plt.rcParams['font.sans-serif']=['SimHei']\n", + "plt.figure(figsize=(15,9))\n", + "x=df['股票名称']\n", + "height=df['涨跌幅']\n", + "plt.grid(axis='y',linestyle='--')\n", + "plt.xlabel('股票名称')\n", + "plt.ylabel('涨跌幅')\n", + "plt.title('部分股票信息',fontsize=18)\n", + "for a,b in zip(x,height):\n", + " plt.text(a,b,format(b,','),ha='center',va='bottom',fontsize=12,color='r',alpha=1.0)\n", + " \n", + "plt.bar(x,height)\n", + "plt.show()" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.6.4" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +}