金融大数据Python爬虫——(按时间爬取、一次性批量爬取多页、一次性批量爬取多家公司多页)爬取百度新闻标题、网址、日期和新闻来源(数据爬取、清洗)
好几个月没写博文了有空来玩玩爬虫之前接触了一个爬虫的项目感触挺深的当时有个爬取巨潮网的操作网上的代码天花乱坠最后还是要靠自己今天这篇算是入门级别欢迎收藏评论。文章目录按默认顺序效果代码解析按时间顺序爬取一次性批量爬取多页内容修改代码效果图爬取多家公司多页数据修改代码效果图(部分)按默认顺序效果代码importrequestsimportre headers{User-Agent:Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36}urlhttp://www.baidu.com/s?tnnewsrtt1bsst1cl2wd阿里巴巴# 把链接中rtt参数换成4即是按时间排序默认为1按焦点排序3.4.1小节也有讲到resrequests.get(url,headersheaders).text# 加上headers用来告诉网站这是通过一个浏览器进行的访问# print(res)p_hrefh3 classnews-title_1YtI1 a href(.*?)#提取新闻网址hrefre.findall(p_href,res,re.S)p_titleh3 classnews-title_1YtI1 .*?(.*?)/atitlere.findall(p_title,res,re.S)p_datespan classc-color-gray2 c-font-normal c-gap-right-xsmall .*?(.*?)/spandatere.findall(p_date,res)p_sourcespan classc-color-gray .*?(.*?)/spansourcere.findall(p_source,res)# print(title)# print(href)# print(date)# print(source)#foriinrange(len(title)):# range(len(title)),这里因为知道len(title) 10所以也可以写成for i in range(10)title[i]title[i].strip()# strip()函数用来取消字符串两端的换行或者空格不过目前2020-10并没有换行或空格所以其实不写这一行也没事title[i]re.sub(.*?,,title[i])# 核心用re.sub()函数来替换不重要的内容print(str(i1).title[i](source[i] date[i]))print(href[i])解析重点就是了解正则表达式规则理解非贪婪匹配和贪婪匹配还有就是换行问题的考虑。数据清洗理解sub()函数和strip()函数即可。按时间顺序爬取爬虫的重点就是——网址一定要对上一定是先要有对应的网址然后再去进行后续的操作如果网址都不对那么后面就一定不对做爬虫最重要的就是观察网址的变化以爬取腾讯新闻为例默认的网址http://www.baidu.com/s?tnnewsrtt1bsst1cl2wd‘腾讯’默认是按照焦点排序这里选择时间排序https://www.baidu.com/s?tnnewsrtt4bsst1cl2wd‘腾讯’可以看到它们唯一的区别就在于“rtt”后的数字推断rtt4按照时间rtt1按照焦点排序故将上述代码的url中的rtt修改为4即可。可以看到已经按照时间排序一次性批量爬取多页内容上面讲到了观察那么这里要学的就是“变通”会玩url地址的人或者对url敏感的人学爬虫一般都非常厉害。‍❄️‍❄️‍❄️‍❄️‍❄️默认时候的网址https://www.baidu.com/s?tnnewsrtt4bsst1cl2wd%E8%85%BE%E8%AE%AFx_bfe_rqs032000000000000000000000000000000000000000000008x_bfe_tjscore0.080000tngroupnameorganic_newsnewVideo12goods_entry_switch1rsv_dlnews_b_pnpn0‍️‍️‍️删除掉一些内容并做一些处理https://www.baidu.com/s?tnnewsrtt4bsst1cl2wd‘腾讯’pn0爬取第2页https://www.baidu.com/s?tnnewsrtt4bsst1cl2wd‘腾讯’pn10爬取第3页https://www.baidu.com/s?tnnewsrtt4bsst1cl2wd‘腾讯’pn20规律pn按照10、20、30…这样的规律递增num (page - 1) * 10修改代码importrequestsimportreimporttime headers{User-Agent:Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36}# 爬取一个公司的多页defbaidu(page):num(page-1)*10# 参数规律是页数-1*10urlhttp://www.baidu.com/s?tnnewsrtt4bsst1cl2wd阿里巴巴pnstr(num)resrequests.get(url,headersheaders).text# 其他相关爬虫代码p_hrefh3 classnews-title_1YtI1 a href(.*?)hrefre.findall(p_href,res,re.S)p_titleh3 classnews-title_1YtI1 .*?(.*?)/atitlere.findall(p_title,res,re.S)p_datespan classc-color-gray2 c-font-normal c-gap-right-xsmall .*?(.*?)/spandatere.findall(p_date,res)p_sourcespan classc-color-gray .*?(.*?)/spansourcere.findall(p_source,res)print(**********title len is {} .format(len(title)))print(**********date len is {}.format(len(date)))print(**********source len is {}.format(len(source)))foriinrange(len(date)):title[i]title[i].strip()# strip()函数用来取消字符串两端的换行或者空格不过这里好像不太需要了title[i]re.sub(.*?,,title[i])# 核心用re.sub()函数来替换不重要的内容print(str(i1).title[i](date[i]-source[i]))print(href[i])foriinrange(3):# 这里一共爬取了3页baidu(i1)# i是从0开始的序号所以要写成i1表示第几页print(第str(i1)页爬取成功)# i是从0开始的序号所以写i1time.sleep(3)# 不要爬太快爬太快会被百度反爬效果图爬取多家公司多页数据修改代码importrequestsimportreimporttime headers{User-Agent:Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36}# 爬取多个公司的多页, 可以给函数传入两个参数供参考defbaidu(company,page):num(page-1)*10# 参数规律是页数-1*10urlhttp://www.baidu.com/s?tnnewsrtt4bsst1cl2wdcompanypnstr(num)resrequests.get(url,headersheaders).text# 正则表达式提取内容p_hrefh3 classnews-title_1YtI1 a href(.*?)hrefre.findall(p_href,res,re.S)p_titleh3 classnews-title_1YtI1 .*?(.*?)/atitlere.findall(p_title,res,re.S)p_datespan classc-color-gray2 c-font-normal c-gap-right-xsmall .*?(.*?)/spandatere.findall(p_date,res)p_sourcespan classc-color-gray .*?(.*?)/spansourcere.findall(p_source,res)foriinrange(len(date)):# range(len(title)),这里因为知道len(title) 10所以也可以写成for i in range(10)title[i]title[i].strip()# strip()函数用来取消字符串两端的换行或者空格不过这里好像不太需要了title[i]re.sub(.*?,,title[i])# 核心用re.sub()函数来替换不重要的内容print(str(i1).title[i](date[i]-source[i]))print(href[i])companys[阿里巴巴,万科集团,百度集团,腾讯,京东]forcompanyincompanys:foriinrange(3):# 这里一共爬取了3页baidu(company,i1)# i是从0开始的序号所以要写成i1表示第几页print(company第str(i1)页爬取成功)# i是从0开始的序号所以写i1time.sleep(3)# 不要爬太快爬太快会被百度反爬效果图(部分)后面不再赘述️️️

相关新闻

三色免疫系统配置解析

三色免疫系统配置解析

# EXP-II-v1.0.yaml 配置加载与集成实现 # Phantom Echo v0.2-alpha 三色免疫系统 Dry-Run Phase-0import yaml import os from dataclasses import dataclass, field from typing import Dict, List, Any import torch import numpy as np# # 1. 配置加载器(支持Y…

2026/10/25 15:46:57 阅读更多 →
一,传感器控制LED

一,传感器控制LED

在开始编写代码之前,我们首先需要完成硬件电路的搭建。传感器控制 LED 的核心思路是:通过传感器感知外部环境变化,将物理信号转换为电信号,再由 STM32 微控制器读取该信号,并根据预设逻辑控制 LED 的亮灭状态。 具体来…

2026/11/10 2:44:39 阅读更多 →
如何快速导出微信聊天记录:个人数据管理终极指南

如何快速导出微信聊天记录:个人数据管理终极指南

如何快速导出微信聊天记录:个人数据管理终极指南 【免费下载链接】WeChatMsg 提取微信聊天记录,将其导出成HTML、Word、CSV文档永久保存,对聊天记录进行分析生成年度聊天报告 项目地址: https://gitcode.com/GitHub_Trending/we/WeChatMsg …

2026/11/11 2:38:55 阅读更多 →

最新新闻

Electron桌面应用开发实战:从环境搭建到打包发布全流程

Electron桌面应用开发实战:从环境搭建到打包发布全流程

做前端这些年,我大部分时间都在跟浏览器标签页打交道,直到第一次把桌面应用跑起来,才发现原来自己一直被限制在地址栏和刷新按钮围起来的框框里。Electron这个词,最开始是在某段时间频繁出现在同事的讨论里,一个用HTML…

2026/11/10 23:32:01 阅读更多 →
滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

简介:亚太天能T109滑盖智能锁产品说明书是一份PDF格式的官方技术文档,主要面向智能锁安装人员、终端用户及售后维护者,帮助快速掌握产品安装、配置与常见故障处理。全包仅1个PDF文件,大小4.37MB,内容结构清晰&#xff…

2026/11/10 23:32:03 阅读更多 →
PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

上个月我在调试一台高速AGV的驱动系统,整车要求空载跑到8m/s,电机转速已经拉到额定点,驱动器的输出电压也顶到了母线电压极限附近。再往上踩速度指令,转速纹丝不动,三相电流反而开始震荡。那会儿我的第一反应就是&…

2026/11/11 2:31:33 阅读更多 →
C++核心知识点:从内存管理到STL的实战指南

C++核心知识点:从内存管理到STL的实战指南

C 这门语言我前前后后折腾了十几年,用它写过嵌入式驱动、做过游戏服务端,也搭过基础组件库。每次看到新人一头扎进"C 核心知识点"这个搜索词,我其实挺感慨的——这门语言的难点从来不是语法多,而是知识点之间的耦合太深…

2026/11/11 17:16:37 阅读更多 →
T109滑盖智能锁怎么装?安装调试与故障排查全攻略

T109滑盖智能锁怎么装?安装调试与故障排查全攻略

简介:亚太天能T109滑盖智能锁产品说明书以PDF格式发布,适合智能锁用户、安装人员与售后维修人员阅读。内容围绕T109系列指纹密码刷卡锁展开,先介绍前面板、后面板、锁体、机械钥匙、电池盒盖等部件名称与功能,再给出完整安装步骤&…

2026/11/11 17:16:37 阅读更多 →
LLM知识降熵:从信息垄断到理解权下放

LLM知识降熵:从信息垄断到理解权下放

你有没有过这种经历:翻开源码注释、论文摘要或者一份专业报告,每个字都认识,连在一起却像天书。想找人聊聊,身边要么没人懂,要么懂的懒得跟你解释。后来我试着把同一段内容丢给一个大语言模型,几秒钟之后&a…

2026/11/10 23:32:10 阅读更多 →

日新闻

周新闻

月新闻