python 爬虫热搜_Python网络爬虫之爬取微博热搜

微博热搜的爬取较为简单,我只是用了lxml和requests两个库

1.分析网页的源代码:右键--查看网页源代码.

从网页代码中可以获取到信息

(1)热搜的名字都在

的子节点里

(2)热搜的排名都在

的里(注意置顶微博是没有排名的!)

(3)热搜的访问量都在

的子节点里

2.requests获取网页

(1)先设置url地址,然后模拟浏览器(这一步可以不用)防止被认出是爬虫程序。

###网址

url="https://s.weibo.com/top/summary?refer=top_hot&topnav=1&wvr=6"

###模拟浏览器,这个请求头windows下都能用

header={'user-agent':'mozilla/5.0 (windows nt 10.0; win64; x64) applewebkit/537.36 (khtml, like gecko) chrome/73.0.3683.103 safari/537.36'}

(2)利用req uests库的get()和lxml的etr ee()来获 取网页代码

###获取html页面

html=etree.html(requests.get(url,headers=header).text)

3.构造xpath路径

上面第一步中三个xath路径分别是:

affair=html.xpath('//td[@class="td-02"]/a/text()')

rank=html.xpath('//td[@class="td-01 ranktop"]/text()')

view=html.xpath('//td[@class="td-02"]/span/text()')

xpath的返回结果是列表,所以affair、rank、view都是字符串列表

4.格式化输出

需要注意的是affair中多了一个置顶热搜,我们先将他分离出来。

top=affair[0]

affair=affair[1:]

这里利用了python的切片。

print('{0:<10}\t{1:<40}'.format("top",top))

for i in range(0, len(affair)):

print("{0:<10}\t{1:{3}<30}\t{2:{3}>20}".format(rank[i],affair[i],view[i],chr(12288)))

这里还是没能做到完全对齐。。。

5.全部代码

###导入模块

import requests

from lxml import etree

###网址

url="https://s.weibo.com/top/summary?refer=top_hot&topnav=1&wvr=6"

###模拟浏览器

header={'user-agent':'mozilla/5.0 (windows nt 10.0; win64; x64) applewebkit/537.36 (khtml, like gecko) chrome/73.0.3683.103 safari/537.36'}

###主函数

def main():

###获取html页面

html=etree.html(requests.get(url,headers=header).text)

rank=html.xpath('//td[@class="td-01 ranktop"]/text()')

affair=html.xpath('//td[@class="td-02"]/a/text()')

view = html.xpath('//td[@class="td-02"]/span/text()')

top=affair[0]

affair=affair[1:]

print('{0:<10}\t{1:<40}'.format("top",top))

for i in range(0, len(affair)):

print("{0:<10}\t{1:{3}<30}\t{2:{3}>20}".format(rank[i],affair[i],view[i],chr(12288)))

main()

结果展示:

总结

以上所述是小编给大家介绍的python网络爬虫之爬取微博热搜,希望对大家有所帮助

希望与广大网友互动??

点此进行留言吧!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/349339.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

优盘复制进来为空_为何电脑上的文件夹一复制到U盘里就变成空文件夹了?

(格式化后的卡在恢复前千万不要往里面存东西,因为这样会覆盖你想恢复的内容,如果你不小心存东西了也不要放弃,只不过恢复的机率会变小),下面开始:::在百度里输入Easy recover 软件找到后下载安装到电脑上,然后将内存卡与电脑连接,打开Easy recover 软件,首次打开时软件会分析系…

Spring Cloud教程–使用Spring Cloud Bus自动刷新配置更改

问题 在上一篇文章Spring Cloud Config Server简介 &#xff08; http://sivalabs.in/2017/08/spring-cloud-tutorials-introduction-to-spring-cloud-config-server/ &#xff09;中&#xff0c;我们已经了解了如何使用Spring Cloud配置服务器。 但是&#xff0c;问题是要重新…

js给标签添加属性和值_jquery节点属性

一.节点操作1.DOM内容节点操作&#xff1a;​ ①innerHTML属性&#xff1a;设置或获取文本的内容&#xff08;普通文本和标签&#xff09;。​ ②innerText属性&#xff1a;设置或获取文本的内容&#xff08;普通文本&#xff09;&#xff0c;存在兼容性问题。2.jQuery内容节点…

sci translate好用吗_228个学科分类对应12000+本SCI和SSCI期刊,总有你要的那款!

最近有很多小伙伴询问选刊的问题&#xff0c;而且都是非常具体的学科方向&#xff0c;我们的小编虽然非常热心且礼貌的回答“近期安排”&#xff0c;但其实我们也感觉到鸭梨山大:根据WOS最新一期&#xff08;2020/9/21&#xff09;名单公布&#xff0c;WOS目前总共收录了12266本…

java 反射 属性顺序_java反射得到的方法数组的顺序

展开全部看了下你好像需要set和get方法&#xff0c;如果你知道属性的名字的话不需要遍历可以这样获取&#xff0c;这个是我以前的demo的一个32313133353236313431303231363533e58685e5aeb931333332633561片段:Class clazzClass.forName("com.demo.reflectdemo.Student&quo…

arrays.sort(._Arrays.sort与Arrays.parallelSort

arrays.sort(.我们都使用Arrays.sort对对象和原始数组进行排序。 此API在下面使用合并排序或Tim排序对内容进行排序&#xff0c;如下所示&#xff1a; public static void sort(Object[] a) {if (LegacyMergeSort.userRequested)legacyMergeSort(a);elseComparableTimSort.sor…

python冒泡排序函数_python冒泡排序-Python,冒泡排序

arr[7,4,3,67,34,1,8].defbubble_sort:最近在学习Python&#xff0c;下面是我的一些笔记冒泡排序实现思路&#xff1a; 使用双重for循环&#xff0c;内层变量为i&#xff0c; 外层为j&#xff0c;在内层循环中不断的比较相邻的两个值(i, i1)的大小&#xff0c;如果i1的值大于i的…

适用于Idea的面向现代TDD的Java 8 JUnit测试模板(带有Mockito和AssertJ)

使用类似BDD的语法&#xff0c;Java 8和Mockito-AssertJ二重奏为Idea调整JUnit测试类模板。 本文涵盖的主题似乎很简单。 但是&#xff0c;根据我的培训师经验&#xff0c;我知道&#xff08;不幸的是&#xff09;这不是常见的做法。 因此&#xff0c;我决定写这篇简短的博客文…

python编程的基本方法有哪些_Python编程中常用的基础知识有哪些?

今天小编要跟大家分享的文章是关于Python编程中常用的基础知识有哪些?正在从事Python相关工作的小伙伴们&#xff0c;来和小编一起看一看本篇文章&#xff0c;希望本篇文章能够对大家有所帮助。1、正则表达式替换目标: 将字符串 line 中的 overview.gif 替换成其他字符串>&…

java取网页源码_Java获取任意http网页源代码的方法

本文实例讲述了JAVA获取任意http网页源代码。分享给大家供大家参考&#xff0c;具体如下&#xff1a;JAVA获取任意http网页源代码可实现如下功能&#xff1a;1. 获取任意http网页的代码2. 获取任意http网页去掉HTML标签的代码Webpage类&#xff1a;/*** 网页操作相关类*/packag…

python数据结构算法优势_Python数据结构与算法(一)----- 算法效率

一.引入先来看一道题&#xff1a;如果abc1000, 且a2b2c^2(a,b,c为自然数)&#xff0c;如何求出所有a,b,c可能的组合&#xff1f;(1) 枚举法import timestart_time time.time()for a in range(0,1001):for b in range(0,1001):for c in range(1,1001):if abc1000 and a**2b**2 …

Java编程字符逆序输出_用JAVA编写一程序:从键盘输入多个字符串到程序中,并将它们按逆序输出在屏幕上。...

展开全部代码如下&#xff1a;import java.util.Scanner;public class ScannerDemo{public static void main(String[] args) throws Exception{Scanner scannew Scanner(System.in);System.out.println("请输入内容&#xff1a;");String strscan.nextLine();char[]…

glassfish 4配置_自己构建GlassFish 4.0快照

glassfish 4配置这篇文章是关于自己发布GlassFish 4.0快照的&#xff0c;其中包括一些黑客。 我找到了GlassFish FullBuild的官方说明&#xff0c;然后决定自己构建服务器。 有时&#xff0c;您可能不想等待团队升级GlassFish构建文件。 在本条目中&#xff0c;我将Artifactory…

julia与python对比_有人说Julia比Python好,还给出了5个理由

选自medium作者&#xff1a;Emmett Boudreau机器之心编译参与&#xff1a;杜伟、张倩、肖清本文作者从速度、通用性、多重派发、适用于 ML 的程度和包管理器 5 个方面阐述了 Julia 语言相较于 Python 的优势所在。Julia 是一种多范式的函数式编程语言&#xff0c;用于机器学习和…

使用Flowable.generate()生成可感知背压的流– RxJava常见问题解答

RxJava缺少创建无限自然数流的工厂。 这样的流很有用&#xff0c;例如&#xff0c;当您想通过压缩两个事件的唯一序列号给可能的无限事件流时&#xff1a; Flowable<Long> naturalNumbers //???Flowable<Event> someInfiniteEventStream //... Flowable<P…

java字符串构造函数的应用_StringTokenizer类的使用

StringTokenizer是一个用来分隔String的应用类&#xff0c;相当于VB的split函数。1.构造函数public StringTokenizer(String str)public StringTokenizer(String str, String delim)public StringTokenizer(String str, String delim, boolean returnDelims)第一个参数就是要分…

linkedhashmap获取第n个元素_机试真题分享——交换链表前后第K个元素

题目描述给定一个编码链表和一个加密条件K&#xff0c;对编码进行加密。加密规则&#xff1a;把编码从前往后开始数第K个元素和从后往前数第K个元素进行交换。注意&#xff1a;编码的长度为0.第一个编码的序号是1.示例&#xff1a;输入&#xff1a;[1 2 3 4 5 6] 2输出&#xf…

maven java 参数_将Maven参数注入Java类

我想将settings.xml配置文件参数注入Java类.我尝试使用maven-annotation-plugin,但值为null.我想知道这是不是因为这个插件是为Mojo设计的Setting.xml片段APP_NAMEUSER_EMAILUSER_PASSWORD在班上Parameter(defaultValue "test.email", readonly true)private Strin…

Spring Boot Admin –用于管理Spring Boot应用程序的Admin UI

作为微服务开发的一部分&#xff0c;我们许多人都将Spring Boot与Spring Cloud功能一起使用。 在微服务领域&#xff0c;我们将有许多Spring Boot应用程序将在相同/不同的主机上运行。 如果将Spring Actuator添加到Spring Boot应用程序中&#xff0c;我们将获得很多现成的端点来…

md5与des算法有何不同_Python算法详解:为什么说算法是程序的灵魂?

算法是程序的灵魂,只有掌握了算法,才能轻松地驾驭程序开发。软件开发工作不是按部就班,而是选择一种最合理的算法去实现项目功能。算法能够引导开发者在面对一个项目功能时用什么思路去实现,有了这个思路后,编程工作只需要遭循这个思路去实现即可。本章将详细讲解计算机算法的基…