python爬取热门新闻每日排行_用python查看百度搜索中今日热点事件排行榜

本文介绍了如何利用Python编程抓取百度搜索的今日热点事件排行榜。通过导入相关库,如requests、BeautifulSoup等,实现模拟浏览器访问网址并解析网页源代码,最终展示排行榜内容。
摘要由CSDN通过智能技术生成

大家好,我是咿哑呀。我们知道,在百度搜索中,查看今日热点事件排行榜时,可以打开网址"http://top.baidu.com/buzz?b=341&c=513&fr=topbuzz_b1"。今天,咿哑呀教大家用python代码打开这个网址,搜索今日热点事件排行榜。

4147827220d2d1fd3f8d1461da266c47.png

新建YYY文件夹,在YYY文件夹中新建main.py文件,在main.py文件中写入以下四行代码:

import string,chardet

from urllib import request

from urllib.parse import quote

from bs4 import BeautifulSoup

这四行代码意思就是导入下载、解析网页所需要的包,如:string、chardet用于解析网址字符,urllib.reauest、urllib.parse.quote用于下载网页,bs4.beautifulsoup用于解析网页源代码。

49ff280a9dd8f793af054c77d3f73792.png

def download(new_url):

if new_url is None:

return None

headers = ("User-Agent",

"Mozilla/5.0 (Windows NT 10.0; Win64; x64)

AppleWebKit/537.36 (KHTML, like Gecko)

Chrome/52.0.2743.116 Safari/537.36 Edge/15.15063")

opener = request.build_opener()

opener.addheaders = [headers]

request.install_opener(opener)

url_ = quote(new_url, safe=string.printable)

if request.urlopen(url_).getcode() != 200:

return None

else:

html = request.urlopen(url_).read()

charset = chardet.detect(html)['encoding']

return html.decode(charset, 'ignore')

这个download函数作用就是模拟网页浏览器打开网址,下载并返回网页源代码。

97747accf0a412d152595104c21ef3cf.png

继续写入get_words函数代码:

def get_words(html_context):

words=[]

if html_context is None:

return

soup = BeautifulSoup(html_context, "html.parser")

titles = soup.findAll('a',class_='list-title')

if titles:

for item in titles:

words.append(item.get_text())

return words

get_words函数作用就是将网页源代码解析出我们需要的内容,并以列表的形式返回所需内容。

49ff280a9dd8f793af054c77d3f73792.png

最后,我们写入这个文件的入口函数main代码:

# 创建main方法

if __name__ == "__main__":

url="http://top.baidu.com/buzz?b=341&c=513&fr=topbuzz_b1"

content=download(url)

words=get_words(content)

for i in range(len(words)):

print(i+1,'.',words[i])

这段代码引用了download、get_words两个函数来下载、解析网址,获得所需内容,以列表的形式显示排行榜内容。

09400094865d73e4eaef3d222e99b4cf.png

这段代码运用十分宽泛,只需要更换url网址和第二个函数中soup.findAll函数中的内容,就可以从url网址中下载soup.findAll中指定的内容啦 !如果这篇文章对你有用,请点赞、转发、收藏、评论,如果喜欢我的文章,请搜索并关注“咿哑呀”,我将分享更多文章给大家。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值