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

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

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

新建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用于解析网页源代码。

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

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函数作用就是模拟网页浏览器打开网址,下载并返回网页源代码。

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

继续写入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函数作用就是将网页源代码解析出我们需要的内容,并以列表的形式返回所需内容。

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

最后,我们写入这个文件的入口函数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两个函数来下载、解析网址,获得所需内容,以列表的形式显示排行榜内容。

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

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

你可能感兴趣的:(python爬取热门新闻每日排行_用python查看百度搜索中今日热点事件排行榜)