日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

scrapy框架爬取大单、中单、小单净流入流出

發布時間:2023/12/16 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 scrapy框架爬取大单、中单、小单净流入流出 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

    • 一、 scrapy框架簡介
    • 二、 爬取大單數據
      • 1. 選取目標網站
      • 2. 確定信息是否可以爬取
      • 3. 加載動態信息
      • 4. 解析網頁,爬取數據
    • 三、代碼

一、 scrapy框架簡介

scrapy框架是一種便捷的爬蟲框架,能夠快速方便地爬取網頁信息,使用者可以不用了解正則表達式就能使用。scrapy的詳細內容可以參考以下帖子:

Scrapy框架流程詳解,
都是干貨,真正的了解scrapy框架

這里不再贅述。

二、 爬取大單數據

1. 選取目標網站

一般只有券商的行情軟件或行情網站上才有大單資金數據,所以選取最常用的同花順網站。

以中國神華(601088)為例,進入該只股票的頁面,網址為:中國神華

進入頁面后可以看到有一個實時成交分布的板塊,在該板塊里,有總流入、總流出、凈額等信息。

2. 確定信息是否可以爬取

點擊鼠標右鍵,選中【檢查】,查看數據對應的元素。

再點擊鼠標右鍵,查看網頁源代碼,是否包括想要爬取的內容。

用紅色框標注的部分就是我們想要的大單數據,可以發現,該部分并沒有具體的數值,說明網頁不是以靜態方式保存的網頁信息。

3. 加載動態信息

檢查下網頁是否存在動態信息。

點擊右鍵,選中【檢查】,切換至network。點擊上面的小圓鈕,將當前所有項目刪除。

稍等幾秒鐘就會發現,出現了很多新的項目。

選中其中的‘1/’(.xhr文件就是我們要找的文件,可以逐個嘗試),可以看到preview中的內容就是我們要找的“大單流出”和‘大單流入’。

Tips:xhr文件是XMLHttpRequest的縮寫,在后臺與服務器交換數據,這意味著可以在不加載整個網頁的情況下,對網頁某部分的內容進行更新。xhr文件會發送新的請求頭,請求新的數據,實現對網頁內容的更新。

切換至【header】選項,可以看到請求的url。

將這個url復制,打開一個新的網頁。

可以看到網頁內容中包含了我們想要的各種大單數據,現在可以開始爬取數據了。

4. 解析網頁,爬取數據

第一步:創建一個新的爬蟲項目,再創建新的爬蟲文件,命名為xhrget。

第二步:編寫xhr.py文件,start_urls就設置為剛才復制過來的url。

第三步:由于剛才復制過來的url對應的是二進制編碼(或者是其他的什么),需要轉化為‘utf-8’編碼格式。由于網頁是json格式,因此需要用json.loads函數進行再編碼,編碼后的頁面如圖所示。

第四步:有效數據提取。解析后的頁面是字典格式,直接按照字典的方式提取即可。

三、代碼

import scrapy import json import csv import pandas as pdclass XhrgetSpider(scrapy.Spider):name = 'xhrget'allowed_domains = ['stockpage.10jqka.com.cn']start_urls = ['http://stockpage.10jqka.com.cn/spService/601088/Funds/realFunds/free/1/','http://stockpage.10jqka.com.cn/spService/600048/Funds/realFunds/free/1/','http://stockpage.10jqka.com.cn/spService/600028/Funds/realFunds/free/1/','http://stockpage.10jqka.com.cn/spService/600036/Funds/realFunds/free/1/','http://stockpage.10jqka.com.cn/spService/601166/Funds/realFunds/free/1/','http://stockpage.10jqka.com.cn/spService/601288/Funds/realFunds/free/1/','http://stockpage.10jqka.com.cn/spService/601398/Funds/realFunds/free/1/','http://stockpage.10jqka.com.cn/spService/601818/Funds/realFunds/free/1/','http://stockpage.10jqka.com.cn/spService/600104/Funds/realFunds/free/1/','http://stockpage.10jqka.com.cn/spService/601668/Funds/realFunds/free/1/']def parse(self, response):# 重編碼jsonResponse = json.loads(response.body.decode('utf-8'))flash = jsonResponse['flash']# 證券代碼symbol = str(response.url).split('/')[-6]# 大單流出out_L = flash[0]['sr']# 中單流出out_M = flash[1]['sr']# 小單流出out_S = flash[2]['sr']# 小單流入in_S = flash[3]['sr']# 中單流入in_M = flash[4]['sr']# 大單流入in_L = flash[5]['sr']# 行業凈額industry_net = jsonResponse['field']['hyje']# 總流入in_all = jsonResponse['title']['zlr']# 總流出out_all = jsonResponse['title']['zlc']# 凈額net_amount = jsonResponse['title']['je']# 輸出(對于每個url會執行一次parse,所以要追加寫入)f = open('bigDeal.csv', 'a+', encoding='utf-8', newline='')csv_writer = csv.writer(f)try:data = pd.read_csv('bigDeal.csv', header = 0)csv_writer.writerow([symbol, out_L, out_M, out_S, in_S, in_M, in_L, industry_net, in_all, out_all, net_amount])except:csv_writer.writerow(['代碼', '大單流出', '中單流出', '小單流出', '小單流入', '中單流入', '大單流入', '行業凈額', '總流入', '總流出', '凈額'])csv_writer.writerow([symbol, out_L, out_M, out_S, in_S, in_M, in_L, industry_net, in_all, out_all, net_amount])

總結

以上是生活随笔為你收集整理的scrapy框架爬取大单、中单、小单净流入流出的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。