Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >用Python脚本自动采集金融网站当天发布的免费报告

用Python脚本自动采集金融网站当天发布的免费报告

作者头像
Python进阶者
发布于 2023-08-31 00:44:22
发布于 2023-08-31 00:44:22
35600
代码可运行
举报
运行总次数:0
代码可运行

一、前言

前几天在Python群【林生】问了一个Python数据采集的问题,需求如下:

想写一个脚本能自动采集下载当天发布的这个页面的这几个免费报告,能保存成这个标题的pdf文件,网站是手机号注册就能下载这些文件的,就是在我注册登录状态下,能采集下载。

二、实现过程

一开始以为网站有逆向,还觉得挺难的,后来发现完全是裸奔,就放心了,发布任务到接单裙,一下子就被抢了,毕竟送钱的单子,人见人爱,花见花开了,300元的爬虫单子,也很香了。

下面是部分核心代码,如果你也对这个感兴趣的话,欢迎私我拿全部源码。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# -*- coding:utf-8 -*-
"""
开发环境:Python 3.86
脚本名称:2023-07-07 报告厅baogaoting
创建日期:20230707"""
import datetime
import os, sys, time, traceback
import pathlib
from parsel import Selector
import requests

headers = {
 "xxx"
}
cookies = {
 "xxx"
}

def _down_file(dow_url,file_name):
 """
 :param dow_url:   下载链接
 :param file_name:  图片绝对路径 包括后缀名
 :return:
 """
 re_重试次数=0
 while True:
  try:
   response = requests.get(dow_url, headers=headers, cookies=cookies, timeout=10)
   if response.status_code == 200:
    break
   elif response.status_code == 404:
    break
   else:
    print(response.status_code)
    re_重试次数 += 1
  except Exception as e:
   adress = sys.exc_info()[-1]  # 异常地址
   line_error = traceback.extract_tb(adress, limit=1)[-1][1]  # 读取错误日志,最后一列的第二个元素即为模块出错行
   print(
    f"===================\n【异常原因】:{e}\n【异常类型】:{type(e)}\n【异常位置】:{line_error}\n===================")
   time.sleep(5)
   re_重试次数 += 1
  if re_重试次数 >= 10:
   response=""
   break
 if response:
  with open(file_name, "wb+") as f:  # , errors='ignore'
   f.write(response.content)
 else:
  print(f"【跳过】:下载失败{file_name}")


import winreg
def get_desktop():
 key = winreg.OpenKey(winreg.HKEY_CURRENT_USER,r'Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders')
 return winreg.QueryValueEx(key, "Desktop")[0]

if __name__ == '__main__':
 zm_path=get_desktop()
 x_date = time.strftime("%Y-%m-%d")
 list_file_path=list(pathlib.Path(x_date).rglob("*"))
 dict_file_path={i.name:True for i in list_file_path}
 
 url = "https://www.baogaoting.com/space/30909237"
 for page in  range(1,3):
  params = {
   "page": page,
   "size": "15"
  }
  response = requests.get(url, headers=headers, cookies=cookies, params=params)
  """
    此处略去多行代码
    """
     print(f"【{title}】:热度{h3} 是当天上传的资料,准备访问下载{href_download}")
     if href_download:
      if not os.path.exists(f"{zm_path}//今日研报"):
       os.makedirs(f"{zm_path}//今日研报",exist_ok=True)
      title=title+ pathlib.Path(href_download).suffix
      #print(href_download, h3,title)
      for k in ["<", ">", "|", '"', "*", '\\', ":", "/", "?", "\n", "\r", "\t", "!", "☆"]:
       date = date.replace(k, '').strip()
      if dict_file_path.get(f"{date}_"+title):
       print(f"【状态】:已经下载了哦,自动跳过")
       continue
      else:
       _down_file(href_download, f"{zm_path}//今日研报//{title}")
     else:
      print(f"【状态】:链接{href_download} {title}无效,跳过不下载")
      
    else:
     print(f"【状态】:不是免费的,不下载")
    time.sleep(0.5)
   else:
    print(f"【状态】:{date} 上传时间不符合,直接结束!")
    break
 input(f"【状态】:完成了哦,按任意键退出软件")

顺利地解决了粉丝的问题。

这样每天打开软件,就可以获取到想要的研报文件了,再也不用挨个去下载,解放双手。

三、总结

大家好,我是皮皮。这篇文章主要盘点了一个Python网络爬虫实战的问题,文中针对该问题,给出了具体的解析和代码实现,帮助粉丝顺利解决了问题。

往期精彩文章推荐:

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2023-07-20,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Python爬虫与数据挖掘 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
爬取某网站小姐姐壁纸
User-Agent在浏览器的F12 Network里面获取(里面找到headers,在最下面就有你自己浏览器的User-Agent参数)
Eternity
2022/08/24
7270
【python爬虫】PyQuery实战:爬取镜像p站每日榜单图片
一、构造url 先取网站一页的url进行观察: https://www.vilipix.com/ranking?date=20220122&mode=daily&p=2 可以发现,是由四部分组成,简单
远方的星
2022/01/24
1.7K0
【python爬虫】PyQuery实战:爬取镜像p站每日榜单图片
Python爬取小说并写入word文档
目标网站就是我们知名的笔趣阁:https://www.biquzw.la/,知名的搬运网站,受众很大,书源也是海量的,主要是没限制的话,好爬!
MinChess
2023/03/08
8610
Python爬取小说并写入word文档
Python关键词数据采集案例,5118查询网站关键词数据采集
对于seoer而言,关注网站的关键词数据是非常重要的,关键词排名情况,流量来源,以及同行的网站数据,那么借助于seo查询工具也是非常有必要的,比较知名的就有爱站站长工具,站长工具以及5118。
二爷
2020/07/22
2K0
Python关键词数据采集案例,5118查询网站关键词数据采集
简单爬虫一部美剧(二)
上篇获取到了每一集的下载url,这篇就用获取到的url下载视频 在下载文件时希望可以给出进度条之类的提示 在网上搜索了一波,发现有一个库可以实现:tqdm库, 具体用法参考这篇博客: https://www.jianshu.com/p/1ed2a8b2c77b 所以在原来的类下面,再加一个方法,用来下载文件,如下 def download_file(url, name): """下载文件""" try: response = requests.get(url=url,
冰霜
2022/03/15
3460
简单爬虫一部美剧(二)
如何手动写一个Python脚本自动爬取Bilibili小视频
国庆结束之余,某个不务正业的码农不好好干活,在B站瞎逛着,毕竟国庆嘛,还让不让人休息了诶~~
Angel_Kitty
2018/10/11
1.6K0
如何手动写一个Python脚本自动爬取Bilibili小视频
[Python] 超星学习通作业批量下载
# -*- coding: utf8 -*- #coder:nianboy #time:2022-7-14 import os import re import requests import pandas as pd class ChaoXingWork: def __init__(self, user, password): self.password = password self.user = user self.work_da
纯情
2023/04/27
3540
Python 博客园备份迁移脚本
鉴于有些小伙伴在寻找博客园迁移到个人博客的方案,本人针对博客园实现了一个自动备份脚本,可以快速将博客园中自己的文章备份成Markdown格式的独立文件,备份后的md文件可以直接放入到hexo博客中,快速生成自己的站点,而不需要自己逐篇文章迁移,提高了备份文章的效率。
王瑞MVP
2022/12/28
5970
Python 博客园备份迁移脚本
python爬取某乎评论下的所有图片
对于很多人来说,拥有一个漂亮的女朋友是一件非常幸福的事情。某乎上就有一个非常热门的话题,叫做有个漂亮女朋友是种怎样的体验?在某乎上阅读量已经达到了5亿的阅读量,受到了十万多人的关注。
@莜莜
2021/04/17
8410
Python 自动爬取B站视频
Python 自动爬取B站视频 文件名自定义(文件格式为.py),脚本内容: #!/usr/bin/env python #-*-coding:utf-8-*- import requests import random import time def get_json(url): headers = { 'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like G
公众号---人生代码
2019/07/24
1.1K0
喜欢去知乎炸鱼?用python吧
知乎高赞贴: 有一双大长腿是什么体验? 有一副迷人的身材是什么体验? 别用手机费劲的翻了,python帮你一臂之力 import re import requests import os import urllib.request import ssl from urllib.parse import urlsplit from os.path import basename # 全局禁用证书验证 ssl._create_default_https_context = ssl._create_unve
超蛋lhy
2019/05/23
7890
Python接口自动化(初版)
在项目conf目录创建settings.py文件,所有的配置信息写在这个文件里面。
Meccer
2022/03/12
8760
Python 爬虫,peca 网站作品信息采集爬虫源码
“我看见一个男人,前几年他无忧无虑,逍遥自在,现在他,一身酒味,两眼无光,满脸憔悴,我很想心疼他一下,于是我伸手摸了一下镜子”
二爷
2023/12/14
1810
Python 爬虫,peca 网站作品信息采集爬虫源码
Python爬虫图片:从入门到精通
在数字化时代,图片作为信息传递的重要媒介之一,其获取和处理变得越来越重要。Python作为一种功能强大且易于学习的编程语言,非常适合用来编写爬虫程序,帮助我们自动化地从互联网上获取图片资源。本文将从基础到高级,详细介绍如何使用Python编写图片爬虫。
正在走向自律
2024/12/18
3920
Python爬虫图片:从入门到精通
requests session的应用,python金点设计奖数据爬虫
应用python爬取金点设计奖获奖作品数据的时候,发现无论如何更换协议头,获取的json数据都不会更改,但是手动打开网页json加载的数据会更改,后面想到使用使用session,数据果断出来了!
二爷
2020/07/22
7940
requests session的应用,python金点设计奖数据爬虫
python爬虫实例
参考: https://beautifulsoup.readthedocs.io/zh_CN/v4.4.0/#find-all
cuijianzhe
2022/06/14
5760
python爬虫实例
21个Python脚本自动执行日常任务(1)
作为编程领域摸爬滚打超过十年的老手,我深刻体会到,自动化那些重复性工作能大大节省我们的时间和精力。
数据科学工厂
2024/12/30
3540
21个Python脚本自动执行日常任务(1)
手把手教你抖音系列视频批量下载器开发
此时我们只需要点击 访问抖音主页,程序则会使用本地的谷歌游览器访问抖音主页。再次点击下载按钮:
Python进阶者
2022/03/10
2.2K0
手把手教你抖音系列视频批量下载器开发
python下载奇书网的小说
网址为,奇书网 以前下载小说是爬取所有的章节,提取文章,构成小说,那样太慢,一本小说几千章节,好久才能下载一本, 现在找到一个有TXT下载的地方,直接读写文章了. 图片.png 准备按照首
热心的社会主义接班人
2018/06/19
1.2K0
零代码编程:用ChatGPT批量下载网站中的特定网页内容
http://blog.umd.edu/davidkass这个网站上有伯克希尔股东大会的一些文字稿,其标题如下:
AIGC部落
2024/06/24
1480
零代码编程:用ChatGPT批量下载网站中的特定网页内容
推荐阅读
相关推荐
爬取某网站小姐姐壁纸
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验