今天來點技術的。

不知道小夥伴們是否還記得我這篇文章:

20200924 散戶到底咋樣才能賺錢?

裡面有真乾貨:

散戶的精力和能力是幹不過機構的,散戶與之對比最明顯的弱點是 訊息不對稱。所以,散戶但凡腦子裡出現:我發現了一個絕妙的機會,別人都不知道,我要賺大錢了,基本上也就意味著要完犢子了。

真金白銀廝殺的交易市場裡,聰明、眼光銳利的人何其多,散戶想要透過這種策略去賺錢就是以卵擊石。

如何獲得基本十大重倉股?

散戶真正應該做的是什麼?去買沒有訊息不對稱的股。

具體的說就是去買明牌的股,買大家一致看好的股,機構喜歡買買買的股,因為機構、大戶在這些股上並不比我們高明。

群裡經常有小夥伴問我對某隻股票怎麼看?

我但凡看到這隻股市值在300億以下,我基本都說就是賭,因為這個時候基本面、技術面啥的分析不重要,因為暗牌之下你不知道有什麼。可能成妖給你10倍回報,也可能暴雷讓你再也無法翻身。

作為一名小散,沒有東山再起的機會。所以,這樣的錢不要去賺,賭對一次只會讓最後的失敗來的更慘烈。

有很多小夥伴問我買什麼股,我說股票池說實話很簡單,就是基金重倉買的,我也跟著買。

可是中國有成千上萬只基金,每隻基金有幾十只股,又都不一樣,到底哪個股是基金愛買的?

我今天就教大家怎麼搞這種資料,幹這種事我是專業的。

首先大家要配置好 python環境,很簡單的,可以參考我這個教程:

第一課。

我們取 愛基金(同花順旗下的)基金資料:

1。 第一步開啟愛基金官網

import

os

import

time

import

traceback

import

pandas

as

pd

from

selenium

import

webdriver

import

utils

option

=

webdriver

ChromeOptions

()

option

add_argument

‘headless’

driver

=

webdriver

Chrome

‘C:\chromedriver_win32\chromedriver。exe’

driver

get

“http://fund。10jqka。com。cn/datacenter/sy/”

time

sleep

10

2。 獲取所有列名

driver

find_element_by_xpath

‘//tr[@class=“tr_hover”]’

text

split

()

columns

=

‘序號’

‘基金程式碼’

‘基金名稱’

‘相關連結’

‘更新日期’

‘周收益’

‘月收益’

‘季收益’

‘年收益’

‘三年收益’

‘今日收益’

‘成立以來收益率’

‘操作’

3。 獲取所有股票型基金

# 股票型

driver

find_element_by_xpath

‘//dd[@type=“gpx”]’

click

()

time

sleep

5

# 年收益排序

driver

find_element_by_xpath

‘//span[@sort=“F011”]’

click

()

time

sleep

5

for

i

in

range

10

):

js

=

‘window。scrollTo(0, document。body。scrollHeight);’

driver

execute_script

js

time

sleep

5

else

js

=

‘var q=document。documentElement。scrollTop=0’

driver

execute_script

js

time

sleep

5

eles

=

driver

find_elements_by_xpath

‘//tbody[@id=“containerMain”]/tr’

res

=

[]

for

ele

in

eles

res

append

ele

text

split

())

res

=

pd

DataFrame

data

=

res

columns

=

columns

res

drop

columns

=

‘相關連結’

‘今日收益’

‘操作’

],

inplace

=

True

res

to_excel

‘raw_data/股票型基金。xlsx’

header

=

True

index

=

False

4。 獲取所有混合型基金

# 混合型

driver

find_element_by_xpath

‘//dd[@type=“hhx”]’

click

()

time

sleep

5

# 年收益排序

driver

find_element_by_xpath

‘//span[@sort=“F011”]’

click

()

time

sleep

5

for

i

in

range

10

):

js

=

‘window。scrollTo(0, document。body。scrollHeight);’

driver

execute_script

js

time

sleep

5

else

js

=

‘var q=document。documentElement。scrollTop=0’

driver

execute_script

js

time

sleep

5

eles

=

driver

find_elements_by_xpath

‘//tbody[@id=“containerMain”]/tr’

res

=

[]

for

ele

in

eles

res

append

ele

text

split

())

res

=

pd

DataFrame

data

=

res

columns

=

columns

res

drop

columns

=

‘相關連結’

‘今日收益’

‘操作’

],

inplace

=

True

res

to_excel

‘raw_data/混合型基金。xlsx’

header

=

True

index

=

False

5。 獲取每個股票型基金的十大重倉股

# 股票型

driver

find_element_by_xpath

‘//dd[@type=“gpx”]’

click

()

time

sleep

5

# 年收益排序

driver

find_element_by_xpath

‘//span[@sort=“F011”]’

click

()

time

sleep

5

for

i

in

range

10

):

js

=

‘window。scrollTo(0, document。body。scrollHeight);’

driver

execute_script

js

time

sleep

5

else

js

=

‘var q=document。documentElement。scrollTop=0’

driver

execute_script

js

time

sleep

5

eles

=

driver

find_elements_by_xpath

‘//td[@class=“links_td links_val”]/a’

for

ele

in

eles

1

:]:

try

name

=

ele

get_attribute

‘text’

href

=

ele

get_attribute

‘href’

utils

get_top10_list

name

href

except

Exception

traceback

print_exc

()

6。 獲取混合型基金的十大重倉

# 混合型

driver

find_element_by_xpath

‘//dd[@type=“hhx”]’

click

()

time

sleep

5

# 年收益排序

driver

find_element_by_xpath

‘//span[@sort=“F011”]’

click

()

time

sleep

5

for

i

in

range

10

):

js

=

‘window。scrollTo(0, document。body。scrollHeight);’

driver

execute_script

js

time

sleep

5

else

js

=

‘var q=document。documentElement。scrollTop=0’

driver

execute_script

js

time

sleep

5

eles

=

driver

find_elements_by_xpath

‘//td[@class=“links_td links_val”]/a’

for

ele

in

eles

1

:]:

try

name

=

ele

get_attribute

‘text’

href

=

ele

get_attribute

‘href’

utils

get_top10_list

name

href

except

Exception

traceback

print_exc

()

7。 utils。py檔案

#coding: utf-8

import

time

from

selenium

import

webdriver

import

pandas

as

pd

def

get_top10_list

name

href

):

print

name

href

driver

=

webdriver

Chrome

r

‘C:\chromedriver_win32\chromedriver。exe’

driver

get

href

js

=

‘var q=document。documentElement。scrollTop=200’

driver

execute_script

js

time

sleep

5

driver

find_element_by_xpath

‘//a[@data-taid=“tzzh”]’

click

()

time

sleep

5

js

=

‘var q=document。documentElement。scrollTop=1000’

driver

execute_script

js

time

sleep

5

year

=

driver

find_element_by_xpath

‘//div[@id=“zcgDate”]/div[1]/p’

text

month

=

driver

find_element_by_xpath

‘//div[@id=“zcgDate”]/div[2]/p’

text

print

year

month

top10

=

driver

find_elements_by_xpath

‘//div[@id=“zcgList”]/div[3]/ul’

title

=

top10

0

text

split

\n

buffer

=

[]

for

x

in

top10

1

:]:

buffer

append

x

text

split

\n

))

data

=

pd

DataFrame

data

=

buffer

columns

=

title

filename

=

‘raw_data/基金/’

+

name

+

‘。xlsx’

sheet_name

=

year

+

‘年’

+

month

+

‘季度’

with

pd

ExcelWriter

filename

as

writer

data

to_excel

writer

sheet_name

=

sheet_name

header

=

True

index

=

False

driver

quit

()

def

read_top10

name

sheet_name

):

try

filename

=

‘raw_data/基金/’

+

name

+

‘。xlsx’

df

=

pd

read_excel

filename

sheet_name

except

Exception

print

name

‘does not exist’

df

=

None

return

df

太長不看

我知道有很多小夥伴要說,我就是要看個10大重倉股,你給我整這麼多?

小夥伴放心,懶得搞這一套的可以直接看我抓到的的資料。

資料鏈接:

當然上面是原始資料,真正要分析出百大高收益基金的十大或者二十大重倉股到底是什麼,還需要進一步加工就行,感興趣的可以關注我,給我留言。

今天先講怎麼拿資料,其實在我看來這部分最重要,畢竟可以基於這個做很多分析。改天分享下基金重倉股資料,直接抄作業真心挺香的。