Python爬虫收集今日热榜数据:聚合全网热点排行榜

主要使用request库和beautifulSoup库爬取今日热榜的数据。

具体代码实现:

 1 import requests
 2 from bs4 import BeautifulSoup
 3 import time
 4 import pandas
 5 import re
 6
 7 def get_html(url):
 8     headers = {‘user-agent‘: ‘Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Safari/537.36‘}
 9     resp = requests.get(url, headers=headers)
10     return resp.text
11
12
13 def get_data(html):
14     soup = BeautifulSoup(html, ‘html.parser‘)
15     nodes = soup.find_all(‘div‘, class_=‘cc-cd‘)
16     return nodes
17
18
19 def get_node_data(df, nodes):
20     now = int(time.time())
21     for node in nodes:
22         source = node.find(‘div‘, class_=‘cc-cd-lb‘).text.strip()
23         messages = node.find(‘div‘, class_=‘cc-cd-cb-l nano-content‘).find_all(‘a‘)
24         for message in messages:
25             content = message.find(‘span‘, class_=‘t‘).text.strip()
26             if source == ‘微信‘:
27                 reg = ‘「.+?」(.+)‘
28                 content = re.findall(reg, content)[0]
29
30             if df.empty or df[df.content == content].empty:
31                 data = {
32                     ‘content‘: [content],
33                     ‘url‘: [message[‘href‘]],
34                     ‘source‘: [source],
35                     ‘start_time‘: [now],
36                     ‘end_time‘: [now]
37                 }
38
39                 item = pandas.DataFrame(data)
40                 df = pandas.concat([df, item], ignore_index=True)
41
42             else:
43                 index = df[df.content == content].index[0]
44                 df.at[index, ‘end_time‘] = now
45
46     return df
47
48
49 url = ‘https://tophub.today‘
50 html = get_html(url)
51 data = get_data(html)
52 res = pandas.read_excel(‘今日热榜.xlsx‘)
53 res = get_node_data(res, data)
54 res.to_excel(‘今日热榜.xlsx‘)

原文地址:https://www.cnblogs.com/Kelly1225/p/12523629.html

时间: 2024-10-28 19:32:24

Python爬虫收集今日热榜数据:聚合全网热点排行榜的相关文章

Python 爬虫工程师必学 App数据抓取实战

第1章 课程介绍介绍课程目标.通过课程能学习到的内容.学会这些技能能做什么,对公司业务有哪些帮助,对个人有哪些帮助.介绍目前app数据抓取有哪些困难,面临的挑战,本实战课程会利用哪些工具来解决这些问题,以及本实战课程的特点 ... 1-1 python爬虫工程师必备技能--App数据抓取实战课程导学第2章 windows下搭建开发环境介绍项目开发需要安装的开发软件,讲解了安卓模拟器对比以及夜神安卓模拟器安装.介绍.简单使用和Genymotion安卓模拟器简单分析 介绍App应用抓包工具对比以及f

Python爬虫工程师必学——App数据抓取实战

Python爬虫工程师必学 App数据抓取实战 爬虫分为几大方向,WEB网页数据抓取.APP数据抓取.软件系统数据抓取.主要讲解如何用python实现App数据抓取 数据去重又称重复数据删除,是指在一个数字文件集合中,找出重复的数据并将其删除,只保存唯一的数据单元.数据去重可以有效避免资源的浪费,所以数据去重至关重要 数据去重 数据去重可以从两个节点入手:一个是URL去重.即直接筛选掉重复的URL:另一个是数据库去重.即利用数据库的一些特性筛选重复的数据. def process_spider_

python爬虫——对爬到的数据进行清洗的一些姿势(5)

做爬虫,当然就要用数据.想拿数据进行分析,首先清洗数据.这个清洗数据包括清除无用数据列和维度,删除相同数据,对数据进行勘误之类的. 从各大不同新闻网站可以爬到重复新闻...这个可以有.之前为了对爬到的新闻信息进行深度挖掘去了这个网站http://blog.reetsee.com/archives/237虽说没有对数据进行更进一步的挖掘,好歹有处理数据.处理重复新闻可以使用python结巴分词.统计分词信息,词典差距过大,词典频度比差距过大,都可以算不同新闻. 对新闻内容字符串进行检查需要这3种操

2020不平凡的90天,Python分析三个月微博热搜数据带你回顾

前言 文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者:刘早起早起 PS:如有需要Python学习资料的小伙伴可以加点击下方链接自行获取http://t.cn/A6Zvjdun 北京时间4月3日凌晨,全球新冠病毒感染人数突破100万,死亡人数超过5万.而这一切都在2020年刚开始的三个月内发生.可能你觉得这三个月很快,有些事情已经逐渐忘记,而互联网的记忆不会消失,数据也会说话.因此作者抓取了2020年1月1日至4月2日的每

python爬虫—爬取百度百科数据

爬虫框架:开发平台 centos6.7 根据慕课网爬虫教程编写代码 片区百度百科url,标题,内容 分为4个模块:html_downloader.py 下载器 html_outputer.py 爬取数据生成html模块 html_parser 获取有用数据 url_manager url管理器 spider_main 爬虫启动代码 spider_main.py 1 #!/usr/bin/python 2 #-*- coding: utf8 -*- 3 4 import html_download

Python爬虫爬取房天下数据-入MySql数据库

Python爬取房天下某城市数据 随着互联网时代的兴起,技术日新月异,掌握一门新技术对职业发展有着很深远的意义,做的第一个demo,以后会在爬虫和数据分析方便做更深的研究,本人不会做详细的文档,有哪里不足的地方,希望大牛们指点讲解.废话不多说,上代码. 你需要的技能: (1)对前端知识熟悉会调试浏览器 (2)熟练python基础知识,对一些常用的库熟练掌握 (3)掌握一般关系型数据库 import requests as req import time import pandas as pd f

python爬虫入门 之 移动端数据的爬取

第七章 移动端数据的爬取 基于某一款抓包工具 : fiddler ,青花瓷 ,miteproxy 7.1 fiddler 基本配置 7.1.1fiddler简介和安装 什么是Fiddler? Fiddler是位于客户端和服务器端的HTTP代理,也是目前最常用的http抓包工具之一 . 它能够记录客户端和服务器之间的所有 HTTP请求,可以针对特定的HTTP请求,分析请求数据.设置断点.调试web应用.修改请求的数据,甚至可以修改服务器返回的数据,功能非常强大,是web调试的利器. Fiddler

python爬虫---CrawlSpider实现的全站数据的爬取,分布式,增量式,所有的反爬机制

CrawlSpider实现的全站数据的爬取 新建一个工程 cd 工程 创建爬虫文件:scrapy genspider -t crawl spiderName www.xxx.com 连接提取器LinkExtractor 可以根据指定的规则对指定的连接进行提取 提取的规则就是构造方法中的allow('正则表达式')参数决定 规则解析器Rule 可以将将连接提取器提取到的连接进行请求发送,可以根据指定的规则(callback)对请求到的数据进行解析 follow=True:将连接提取器 继续作用到

Python数据聚合和分组运算(1)-GroupBy Mechanics

前言 Python的pandas包提供的数据聚合与分组运算功能很强大,也很灵活.<Python for Data Analysis>这本书第9章详细的介绍了这方面的用法,但是有些细节不常用就容易忘记,遂打算把书中这部分内容总结在博客里,以便复习查看.根据书中的章节,这部分知识包括以下四部分: 1.GroupBy Mechanics(groupby技术) 2.Data Aggregation(数据聚合) 3.Group-wise Operation and Transformation(分组级运