中信证券抓取(页码范围)

news/2024/11/20 14:30:41/文章来源:https://www.cnblogs.com/suifeng2000/p/18346226

中信证券抓取(页码范围)

创建时间:2024年8月5日

一、完整代码

import re
import requests
from lxml import etreeheaders = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36',
}
url1 = 'http://www.cs.ecitic.com/newsite/cpzx/jrcpxxgs/zgcp/index.html'
res = requests.get(url=url1, headers=headers, verify=False)
res.encoding = res.apparent_encoding
total_num = int(re.search('var countPage = (?P<page>\d+)//共多少页', res.text).group('page'))def get_data(url):url = url.replace('\n', '')print(url)response = requests.get(url=url,headers=headers, verify=False)response.encoding = response.apparent_encodingdata = response.texttree = etree.HTML(data)rows = tree.xpath('/html/body/div[4]/div/ul/li')for row in rows:row_mc = row.xpath('./span[@class="th1"]/text()')row_glr = row.xpath('./span[@class="th2"]/text()')row_fxpj = row.xpath('./span[@class="th3"]/text()')row_je = row.xpath('./span[@class="th4"]/text()')row_gs = row.xpath('./span[@class="th5"]/text()')sting = f"{row_mc}, {row_glr}, {row_fxpj}, {row_je}, {row_gs},'\n'"sting = sting.replace("['", "").replace("']", "").replace("'", "")with open('./zxzq/中信证券.txt', 'a+', encoding='utf-8') as f:f.write(sting)start_page = int(input('请输入需要抓取的页码开始:(1开始)'))end_page = int(input(f'请输入需要抓取的页码结束:({total_num}结束)'))for i in range(start_page - 1, end_page):if end_page + 1 > total_num:print('页码超过数据限制!!')exit(-1)if i == 0:url = 'http://www.cs.ecitic.com/newsite/cpzx/jrcpxxgs/zgcp/index.html'get_data(url)else:url = f'http://www.cs.ecitic.com/newsite/cpzx/jrcpxxgs/zgcp/index_{i}.html'get_data(url)

1.1 效果

二、学习点

2.1 verify 参数

verify关键字参数,在请求的时候不验证网站的ca证书

2.2 设置编码

res.encoding = res.apparent_encoding
# 大部分情况可以自动解码,实在不行可手动设置编码
res.encoding = 'utf-8'

2.3 运用正则表达式获取页码

total_num = int(re.search('var countPage = (?P<page>\d+)//共多少页', res.text).group('page'))
# search(pattern, string, flags=0)  扫描字符串寻找匹配的模式,返回一个match对象,如果没有找到匹配则返回None。 

页面源代码对应的页码位置:

2.4 xpath路径

rows = tree.xpath('/html/body/div[4]/div/ul/li')for row in rows:row_mc = row.xpath('./span[@class="th1"]/text()')row_glr = row.xpath('./span[@class="th2"]/text()')row_fxpj = row.xpath('./span[@class="th3"]/text()')row_je = row.xpath('./span[@class="th4"]/text()')row_gs = row.xpath('./span[@class="th5"]/text()')sting = f"{row_mc}, {row_glr}, {row_fxpj}, {row_je}, {row_gs},'\n'"sting = sting.replace("['", "").replace("']", "").replace("'", "")

先解析到所有的数据,然后在遍历匹配出来

2.5 分页逻辑

start_page = int(input('请输入需要抓取的页码开始:(1开始)'))end_page = int(input(f'请输入需要抓取的页码结束:({total_num}结束)'))for i in range(start_page - 1, end_page):if end_page + 1 > total_num:print('页码超过数据限制!!')exit(-1)if i == 0:url = 'http://www.cs.ecitic.com/newsite/cpzx/jrcpxxgs/zgcp/index.html'get_data(url)else:url = f'http://www.cs.ecitic.com/newsite/cpzx/jrcpxxgs/zgcp/index_{i}.html'get_data(url)

首页地址和第二页地址,第三页有规律,按照规律即可写出来

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/779020.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

三国演义内容抓取(诗词名句网)

三国演义内容抓取(诗词名句网) 时间:2024-08-06 一、完整代码 import random import timeimport requests from lxml import etreefour_famous_novels = https://www.shicimingju.com/bookmark/sidamingzhu.html # 四大名著在线阅读地址 three_kingdoms = https://www.shic…

表情党抓取(单页) (网站已转移)

表情党抓取(单页) (网站已转移) 创建时间:2024-08-06 一、完整代码 import requests from lxml import etree url = https://qq.yh31.com/xq/wq/ header = {User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.…

腾牛网抓取(单页)

腾牛网抓取(单页) 创建时间:2024-08-05 一、完整代码 import requests from lxml import etree url = https://www.qqtn.com/wm/meinvtp_1.html header = {User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0…

抓取金投网文本数据(xpath练习)

抓取金投网文本数据(xpath练习) 创建时间:2024年8月5日 一、完整代码 import requests from lxml import etreeheader = {User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36 Edg/125.0.0.0 } …

IntersectionObserver + scrollIntoView 实现电梯导航

电梯导航也被称为锚点导航,当点击锚点元素时,页面内相应标记的元素滚动到视口。而且页面内元素滚动时相应锚点也会高亮。电梯导航一般把锚点放在左右两侧,类似电梯一样。常见的电梯导航效果如下,比如一些官方文档中:之前可能会用 getBoundingClientRect() 判断元素是否在视…

pthread_once导致死锁

在一个pthread_once方法内又再次调用了这个pthread_once导致死锁。分析下这个pthread_once的源码:可以看到这个pthread_once_t结构体就是一个整形数字加自旋锁。 int ___pthread_once (pthread_once_t *once_control, void (*init_routine) (void)) {/* Fast path. See __pth…

1.3 功率电感选型----硬件设计指南(持续补充更新)

本系列文章是笔者总结多年工作经验,结合理论与实践进行整理备忘的笔记。希望能在帮助自己温习整理避免遗忘的同时,也能帮助其他需要参考的朋友。笔者会不定期进行查漏补缺。如有谬误,欢迎大家进行指正。 一、设计要点 1.电流降额建议按照1-10%-电感精度进行,主要设计参数是…

基于simulink的分布式发电系统自动重合闸的建模与仿真分析

1.课题概述在配电系统中,80%-90%的故障都是瞬时故障。发生故障时,线路被保护迅速断开,随即重合闸。当分布式电源接入配电网后,线路发生故障后重合闸,此时分布式电源没有跳离线路,这将产生两种潜在威胁,即非同期重合闸和故障点电弧重燃。非同期重合闸:当线路上发生故障,…

Windows10 安装编译后的 pysqlcipher3-1.2.1 基于 Python 3.8.10

Windows10 安装编译后的 pysqlcipher3-1.2.1 基于 Python 3.8.10 本文主要是将直接安装编译后的文件,不一定的成功,但是可以尝试使用,若无法直接安装,请参考编译过程,自行编译安装,编译过程见这里 安装 pysqlcipher3 这里用 32位 举例 因为 64位 安装完全相同,只需要把对…

17 模块subprocess、re

1. subprocess模块 1.1 概念subprocess模块启动一个新进程,并连接到它们的输入/输出/错误管道,从而获取返回值 简单理解:可以远程连接电脑(socket模块) 1.2 Popen方法import subprocessres = subprocess.Popen([help, ver], # windows中执行的命令要放在列表里面,命令单…

STM32学习记录(八):DMA

什么是DMA? DMA在之前的学习中已经用过了。那么,什么是DMA?Direct memory access (DMA) is used in order to provide high-speed data transfer between peripherals and memory as well as memory to memory. Data can be quickly moved by DMA without any CPU actions…