有了上一次网易云音乐的实践之后, 这一次轻车熟路, 制作了一个新浪微博头条榜的爬虫, 代码如下:

#!/usr/bin/python
#-*- coding: utf-8 -*-
import re
import sys
import datetime
from selenium import webdriver
from time import sleep
from selenium.webdriver.common.action_chains import ActionChainsdef scrap_sina_toplist():try:# 打开网页: browser = webdriver.Chrome(chrome_options=options)browser.get("https://s.weibo.com/top/summary?Refer=top_hot&topnav=1&wvr=topindex")# 第一位排名的序号为2, 因为新浪微博有置顶的飙升最快的事件!xpath_casename_left = "/html/body/div[1]/div[2]/div[2]/table/tbody/tr["xpath_casename_right = "]/td[2]/a"# 同理, 此序号也为2开始!!!xpath_hotpoint_left = "/html/body/div[1]/div[2]/div[2]/table/tbody/tr["xpath_hotpoint_right = "]/td[2]/span"# 用列表类型来整合toplist, each_info存放每一个的表单toplist = list()each_info = dict()# 时间戳处理:year = datetime.datetime.now().strftime("%Y")month = datetime.datetime.now().strftime("%m")day = datetime.datetime.now().strftime("%d")hour = datetime.datetime.now().strftime("%H")minute = datetime.datetime.now().strftime("%M")now_time = year + u"/" + month + u"/" + day + u":" + hour + u":" + minutefor i in range(2, 22):  # 仅仅处理前20位的新闻变化, 放弃排名较靠下的新闻# 头条事件名处理:try: xpath_casename = xpath_casename_left + str(i) + xpath_casename_righteach_info["name"] = (browser.find_element_by_xpath(xpath_casename))# 正则表达式,去掉歌名中的逗号, 并将"name"处理为str类型!:each_info["name"] = re.sub(",", "", each_info["name"].text)except:break# 头条对应热度处理:try:xpath_hotpoint = xpath_hotpoint_left + str(i) + xpath_hotpoint_righteach_info["hotpoint"] = (browser.find_element_by_xpath(xpath_hotpoint))except:break# 排行榜序列索引each_info["index"] = i - 1# 处理时间戳  each_info["time"] = now_time# 加入处理后的数据到列表toplist中:toplist.append(each_info)each_info = dict()# 输出到文件中:# 打开文件追加a模式filename = ".\sina\sina_hotlist.txt"fileout = open(filename, "a+", encoding='utf-8')#写入数据:for i in toplist:fileout.writelines(i["name"] + "," + str(i["index"]) + "," + i["hotpoint"].text + "," + i["time"] + "\n")finally:# 关闭文件和窗口:fileout.close()browser.close()#-----------------------------------------  程序开始处 -------------------------------------------## 设置Chrome请求头(非无头模式):
options = webdriver.ChromeOptions()
options.add_argument('--headless')options.add_argument('lang=zh_CN.UTF-8') # 设置中文
options.add_argument('disable-infobars') #隐藏"Chrome正在受到自动软件的控制"
options.add_argument('--disable-gpu') #谷歌文档提到需要加上这个属性来规避bug# 更换头部
user_agent = ("Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_4) " +"AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.57 Safari/537.36")
options.add_argument('user-agent=%s'%user_agent)# 运行爬虫程序:
scrap_sina_toplist()# 退出程序:
#    sys.exit(0)

Python3爬取新浪微博头条相关推荐

  1. Python3爬取今日头条文章视频数据,完美解决as、cp、_signature的加密方法(2020-6-29版)

    前言 在这里我就不再一一介绍每个步骤的具体操作了,因为在爬取老版今日头条数据的时候都已经讲的非常清楚了,所以在这里我只会在重点上讲述这个是这么实现的,如果想要看具体步骤请先去看我今日头条的文章内容,里 ...

  2. Python3 爬取今日头条(模拟ajax请求)

    Python3 爬取今日头条(模拟ajax请求) 注:本文是跟据博主崔庆才的博客来写的,不单单是思路值得学习,还有代码规范更值得去学习.路漫漫其修远兮,吾将上下而求索. 新建一个config.py文件 ...

  3. python3 爬取今日头条文章(巧妙避开as,cp,_signature)

    使用环境: python3 scrapy win10 爬取思路 (一)关于as.cp的生成与_signature的想法 对于今日头条的爬虫,网上搜索出来的文章大多是基于崔庆才(通过搜索爬取美女街拍的方 ...

  4. python3爬取新浪微博_Python3爬取新浪微博头条

    #!/usr/bin/python #-*- coding: utf-8 -*- import re import sys import datetime from selenium import w ...

  5. python爬取今日头条的文章_Python3爬取今日头条有关《人民的名义》文章

    Python3爬取今日头条有关<人民的名义>文章 最近一直在看Python的基础语法知识,五一假期手痒痒想练练,正好<人民的名义>刚结束,于是决定扒一下头条上面的人名的名义文章 ...

  6. Python3爬取京东商品数据,解决赖加载问题

    前言 在这里我就不再一一介绍每个步骤的具体操作了,因为在上一次爬取今日头条数据的时候都已经讲的非常清楚了,所以在这里我只会在重点上讲述这个是这么实现的,如果想要看具体步骤请先去看我今日头条的文章内容, ...

  7. Python3爬取迅捷语音转文字(包含持久化登陆和分片上传文件)

    前言 在这里我就不再一一介绍每个步骤的具体操作了,因为在上一次爬取今日头条数据的时候都已经讲的非常清楚了,所以在这里我只会在重点上讲述这个是这么实现的,如果想要看具体步骤请先去看我今日头条的文章内容, ...

  8. Python3从零开始爬取今日头条的新闻【五、解析头条视频真实播放地址并自动下载】

    Python3从零开始爬取今日头条的新闻[一.开发环境搭建] Python3从零开始爬取今日头条的新闻[二.首页热点新闻抓取] Python3从零开始爬取今日头条的新闻[三.滚动到底自动加载] Pyt ...

  9. [Python3网络爬虫开发实战] --分析Ajax爬取今日头条街拍美图

    [Python3网络爬虫开发实战] --分析Ajax爬取今日头条街拍美图 学习笔记--爬取今日头条街拍美图 准备工作 抓取分析 实战演练 学习笔记–爬取今日头条街拍美图 尝试通过分析Ajax请求来抓取 ...

最新文章

  1. 网络慢是带宽不足?优化网络带宽的5个小窍门
  2. 关于Android Service真正的完全详解,你需要知道的一切
  3. Windows MySQL8.0安装出错解决方案(Start Server 失败)
  4. laravel + Vue 前后端分离 之 项目配置- 生产环境部署
  5. [原]iBatis.Net(C#)系列一:简介及运行环境
  6. 软件开发的需求分析样例
  7. vcenter接管_人工智能接管广告创意
  8. 本科毕业设计论文答辩ppt模板
  9. 利用httpclient和多线程刷访问量代码
  10. c++个人银行账户管理3
  11. 计算机专业高数学科难度,大学里极其有难度的4个专业,挂科率很高,不是学霸学不明白...
  12. 软件测试适合女孩子吗?从以下几点告诉你答案
  13. mysql中长整型是longint_整型int和长整型long
  14. 钙通道阻滞剂/拮抗剂的应用
  15. 分布式系统的性能优化方法
  16. FET335X核心板 序---用飞凌AM335X开始工作了
  17. 位运算实现加减乘除运算
  18. 【web前端】html+js实现流程进度展示条
  19. 【年度总结】2021 邂逅前端,入坑算法
  20. 社群网站广告有效了!竟是普通的陈列广告+小型线上活动

热门文章

  1. js实现酷炫倒计时动画效果
  2. ESP8266 接入阿里物联网平台实现远程控制LED
  3. JDBC MySQL 连接
  4. 算法学习----红黑树
  5. Android 开发学习笔记:七大知识点板块汇总
  6. 2022年的5G行业:“5G+”很火,5G网络迟迟未能普及
  7. 注意啦,维谛技术(Vertiv)品牌正式启用了,来头可不小
  8. python爬取微博热搜数据并保存!
  9. Unity3D脚本中文系列教程(八)
  10. Unity ShaderGraph图片发光效果