python爬虫爬取京东金融基金信息

闲暇之余,利用Python爬虫爬取下京东金融的基金信息,感兴趣的小伙伴可以看看,有什么关于代码的交流可以加我微信:
qqtxw128

#__author:"tangxiaowen"
#date:2018/9/28
import requests
from lxml import etree
from selenium import webdriver
from selenium.common.exceptions import NoSuchElementException
import csv
import time
import chardet

def get_page(url):
    dr = webdriver.PhantomJS()
    dr.get(url)
    get_next(dr)

def get_next(dr):
    res = dr.page_source.encode().decode('utf-8')
    html = etree.HTML(res)
    for i in range(1, 11): #通过观察网站HTML可以发展每一个网页一共有11个tr标签
        gupiao = [] #创建一个列表,存储一只基金的信息
        
        #利用xpath解析想要获取的信息
        a = html.xpath('/html/body/div[5]/div[2]/div[1]/div[2]/table/tbody/tr[{}]/td[1]/a/text()'.format(str(i)))
        span = html.xpath('/html/body/div[5]/div[2]/div[1]/div[2]/table/tbody/tr[{}]/td[1]/span/text()'.format(str(i)))
        tr = html.xpath('/html/body/div[5]/div[2]/div[1]/div[2]/table/tbody/tr[{}]/td/text()'.format(str(i)))
        
        #把所有的信息追加到一个列表当中
        gupiao.append(a[0])
        gupiao.append(span[0])
        gupiao.extend(tr)
        
	#我们以CSV的格式存储,便于以后对基金信息的分析
        with open('JD.csv', 'a', encoding='gbk') as f:
            # filename = ['基金名称','代码','单位净值','近1周','近1月','近3月','近6月','近1年','近3年','今年以来','近一年定投']
            writer = csv.writer(f)
            # writer.writerow(filename)
            writer.writerow(gupiao)
            
    try:
        dr.find_element_by_class_name('down-page').click()
        time.sleep(2)
        return get_next(dr)
      #不停的加载下一页,直到找不到下一页为止,捕获异常,程序结束![在这里插入图片描述](https://img-blog.youkuaiyun.com/201809291043278?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80Mjg5MDcyNQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
    except NoSuchElementException as e: 
        print(e)
        print("没有找到下一页")
        return

if __name__=="__main__":
    url = 'http://fund.jd.com/'
    get_page(url)

京东金融网页利用AJAX渲染过得,由于本人愚钝,暂时没有找到url的规律,所有利用python爬虫的终极武器,selenium + PJ。
如果有哪位小伙伴知道它的url规律,还请告知;非常感谢!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值