python热搜排行功能_简单几行代码用Python爬取微博的热搜榜

简单几行代码用Python爬取微博的热搜榜

想要实时的看微博热搜 但是又不想去微博网站看!怎么办呢?其实很简单! 我们学了这个requests_html 这个库之后 就更加的简单了! 小编只用了短短的几行代码就Python把所有的热搜结果抓取到了!

然后用审查元素找到热搜词的关键元素的对象"td-02"  我们用requests_html的函数 find 也就是CSS选择器

官方的文档是这样写的!

find(selector: str = '*', *, containing: Union[str, typing.List[str]] = None, clean: bool = False, first: bool = False,_encoding: str = None) → Union[typing.List[_ForwardRef('Element')], _ForwardRef('Element')]

接收一个css选择器参数,返回一个Element对象或Element对象组成的列表。

参数说明:selector - css选择器

clean - 对找到的

containing - 如果指定,则只会返回包含指定文本的Element对象

first - 是否只返回第一个结果

_encoding - 编码格式

CSS选择器示例:a

a.someClass

a#someID

a[target=_blank]

查看CSS选择器的更多详细内容

如果first参数被置为True, 则只返回找到的第一个Element对象

是不是觉得很简单呢? 当然你也可以用XPath 方法可以自己写哦!也可以留言问小编!

废话不多说 直接上代码吧!from requests_html import HTMLSession

session = HTMLSession()

def weibo():

'''

微博热搜榜 实时抓取微博的排行榜!需要设置请求头headers!

'''

headers = {

'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36 QIHU 360SE'

}

url = 'https://s.weibo.com/top/summary/summary?cate=realtimehot'

r = session.get(url, headers=headers)

# 查找元素td-02 所有的

r = r.html.find('.td-02')

a = 1

for x in r:

print(str(a) + '>' + x.text)

a += 1

if __name__ == '__main__':

weibo()

运行结果如下图 为了更加直观的看出 我加了序号! 不喜欢的可以去掉!不影响代码的!

python热搜排行功能_简单几行代码用Python爬取微博的热搜榜_第1张图片

你可能感兴趣的:(python热搜排行功能)