一、 爬取天天基金网基金排行榜 进入天天基金网排行榜页面,可以发现每个页面可显示50条基金信息,在进入下一页时,url没有变化,所以我们没法通过改变url来爬取所有数据。但是通过点击页面右下角的”“不分页”选项,可在此页面上获得所有排行榜上的基金。 我们使用selenium加载网页,获取页面信息,利用pyquery提取所需要的信息,并将数据以csv文件存储。爬虫代码如下:
import codecs
from selenium import webdriver
from selenium.webdriver.support.wait import WebDriverWait
from pyquery import PyQuery as pq
import csv
import json
from lxml import etree
import pymongo
def gethtml(url):
brower = webdriver.Chrome()
brower.get(url)
html = brower.page_source
return html
def getinformation(html):
with open('Fund.csv', 'a', encoding='utf-8-sig') as f:
filename = ['index', '代码', '网址', '简称', '日期', '单位净值', '累计净值', '日增长率', '近一周',
'近一月', '近三月', '近六月', '近一年', '近两年', '近三年', '今年来', '成立来', '自定义',
'手续费']
writer = csv.DictWriter(f, fieldnames=filename)
writer.writeheader()
doc = pq(html)
items = doc(
'html body div.mainFrame div.dbtable table#dbtable tbody tr ').items()
for item in items:
list = []
infors = item.find('td').items()
for i, infor in enumerate(infors):
if i == 0 or i == 19:
continue
list.append(str(infor.text().strip()))
if i == 2:
href = infor.find('a').attr('href')
list.append(href)
print(list)
print(len(list))
writer = csv.writer(f)
writer.writerow(list)
if __name__ == "__main__":
url = 'http://fund.eastmoney.com/data/fundranking.html#tall;c0;r;szzf;pn10000;ddesc;qsd20201210;qed20211210;qdii;zq;gg;gzbd;gzfs;bbzt;sfbb'
html = gethtml(url)
getinformation(html)
结果如下图:
二、基金推荐 基金选择策略: 1.四四三三法则 四:即一年期基金绩效排名在同类型基金前1/4; 四:即今年以来、两年、三年、五年基金绩效在同类型基金前1/4; 三:即六个月基金绩效排名在同类型基金前1/3; 三:即三个月基金绩效排名在同类型基金前1/3。 2.基金所持有的股票 3.基金经理的收益率
|