上交所崩了

铁子们!牛回速归!!!

第一次见到交易所崩了,以前都是同花顺或者券商出故障

交易所今天最开始无法撤单,后面就直接无法交易了,所有股票拉成一条线了

e16a5ebde36aa310ea8f10bb1a4ef783.png

2c8b0dce8502a0e5ccc26b7552a14c37.png

50 分钟故障处理完成,这在阿里估计一排的开发都凉了~又有开发要背锅咯~

### 爬取上交所官网公告信息的Python爬虫开发 #### 1. 使用Selenium处理动态加载网页 上交所官网的公告信息通常是通过JavaScript动态加载的,因此使用传统的`requests`库可能无法获取完整的页面内容。可以使用`Selenium`来模拟浏览器操作,从而获取完整的页面内容。 以下是一个使用Selenium的示例代码: ```python from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.chrome.service import Service from selenium.webdriver.chrome.options import Options import time # 设置Chrome选项 chrome_options = Options() chrome_options.add_argument("--headless") # 无头模式,不打开浏览器窗口 chrome_options.add_argument("--disable-gpu") chrome_options.add_argument("--no-sandbox") # 设置Chrome驱动路径 service = Service('/path/to/chromedriver') # 创建WebDriver对象 driver = webdriver.Chrome(service=service, options=chrome_options) # 打开上交所公告页面 driver.get('http://www.sse.com.cn/disclosure/listedinfo/announcement/') # 等待页面加载 time.sleep(5) # 获取页面内容 page_source = driver.page_source # 关闭浏览器 driver.quit() ``` #### 2. 解析页面内容并提取公告信息 在获取到页面内容后,可以使用`BeautifulSoup`库来解析HTML,并提取所需的公告信息。 ```python from bs4 import BeautifulSoup # 解析页面内容 soup = BeautifulSoup(page_source, 'html.parser') # 查找公告信息 announcements = soup.find_all('div', class_='announcement') # 提取并打印公告标题和链接 for announcement in announcements: title = announcement.find('a')['title'] link = announcement.find('a')['href'] print(f"标题: {title}, 链接: {link}") ``` #### 3. 下载公告PDF文件 如果需要下载公告的PDF文件,可以通过提取链接并使用`requests`库进行下载。 ```python import requests # 下载PDF文件 def download_pdf(url, filename): response = requests.get(url) with open(filename, 'wb') as f: f.write(response.content) # 示例:下载第一个公告的PDF if announcements: pdf_url = announcements[0].find('a')['href'] download_pdf(pdf_url, 'announcement.pdf') ``` #### 4. 使用Bloom Filter避免重复爬取 为了避免重复爬取相同的公告,可以使用Bloom Filter来记录已经爬取过的URL。 ```python import hashlib class BloomFilter: def __init__(self, size=1000000): self.size = size self.bit_array = [0] * size def add(self, url): hash_value = int(hashlib.md5(url.encode()).hexdigest(), 16) index = hash_value % self.size self.bit_array[index] = 1 def contains(self, url): hash_value = int(hashlib.md5(url.encode()).hexdigest(), 16) index = hash_value % self.size return self.bit_array[index] == 1 # 实例化Bloom Filter bloom_filter = BloomFilter() # 添加URL到Bloom Filter bloom_filter.add(pdf_url) # 检查URL是否已经爬取过 if not bloom_filter.contains(pdf_url): download_pdf(pdf_url, 'announcement.pdf') bloom_filter.add(pdf_url) ``` ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值