爬虫—中信证券资管产品抓取

爬虫---中信证券资管产品抓取

中信证券资管产品板块网址:http://www.cs.ecitic.com/newsite/cpzx/jrcpxxgs/zgcp/

页面截图如下:

目标:抓取上图中红框内的所有资产信息

按F12进入开发者工具模式,在Elements板块下,在搜索框内输入"//ul[@class="list-con"]/li",匹配ul列表里的所有资管产品的li标签,如图:

抓取单页数据,源码如下:

python 复制代码
import requests
from lxml import etree


headers = {
    'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36'
}

url = 'http://www.cs.ecitic.com/newsite/cpzx/jrcpxxgs/zgcp/index.html'

res = requests.get(url, headers=headers)

res.encoding = res.apparent_encoding

data = res.text

tree = etree.HTML(data)

# 获取每个li标签
li_lst = tree.xpath('//ul[@class="list-con"]/li')

i = 1
for li in li_lst:
    print(str(i)+'.', ', '.join(li.xpath('./span/text()')))
    i += 1

运行结果如下:

本案例只抓取第一页的资管产品信息,如果想抓取多页,可以自行修改代码。

抓取多页数据,源码如下:

python 复制代码
import requests
from lxml import etree

headers = {
    'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36'
}


# 定义一个函数,抓取每页的数据
def get_page(page_url):
    res = requests.get(page_url, headers=headers)

    res.encoding = res.apparent_encoding

    data = res.text

    tree = etree.HTML(data)

    # 获取每个li标签
    li_lst = tree.xpath('//ul[@class="list-con"]/li')

    i = 1
    for li in li_lst:
        print(str(i) + '.', ', '.join(li.xpath('./span/text()')))
        i += 1


# 抓取前4页的数据
for page_n in range(4):
    # 格式化资管产品的页面网址
    page_url = f'http://www.cs.ecitic.com/newsite/cpzx/jrcpxxgs/zgcp/index_{page_n}.html'
    # 第一页的资管产品网址
    if page_n == 0:
        page_url = 'http://www.cs.ecitic.com/newsite/cpzx/jrcpxxgs/zgcp/index.html'
    print(f'第{page_n + 1}页资管产品:')

    get_page(page_url)

运行结果如下:

思考:如果抓取任意页数的数据,可以参考如下代码。

python 复制代码
# 定义一个页数变量
page_num = input('请输入要抓取的页数: ')

把抓取多页源码的range()内的数字替换为page_num,要转成整型数据int(page_num)。
.....
相关推荐
belldeep2 小时前
python:reportlab 将多个图片合并成一个PDF文件
python·pdf·reportlab
FreakStudio4 小时前
全网最适合入门的面向对象编程教程:56 Python字符串与序列化-正则表达式和re模块应用
python·单片机·嵌入式·面向对象·电子diy
丶21364 小时前
【CUDA】【PyTorch】安装 PyTorch 与 CUDA 11.7 的详细步骤
人工智能·pytorch·python
_.Switch5 小时前
Python Web 应用中的 API 网关集成与优化
开发语言·前端·后端·python·架构·log4j
一个闪现必杀技5 小时前
Python入门--函数
开发语言·python·青少年编程·pycharm
小鹿( ﹡ˆoˆ﹡ )6 小时前
探索IP协议的神秘面纱:Python中的网络通信
python·tcp/ip·php
卷心菜小温6 小时前
【BUG】P-tuningv2微调ChatGLM2-6B时所踩的坑
python·深度学习·语言模型·nlp·bug
陈苏同学6 小时前
4. 将pycharm本地项目同步到(Linux)服务器上——深度学习·科研实践·从0到1
linux·服务器·ide·人工智能·python·深度学习·pycharm
唐家小妹6 小时前
介绍一款开源的 Modern GUI PySide6 / PyQt6的使用
python·pyqt
羊小猪~~7 小时前
深度学习项目----用LSTM模型预测股价(包含LSTM网络简介,代码数据均可下载)
pytorch·python·rnn·深度学习·机器学习·数据分析·lstm