简单几行代码爬取百度实时热点,最后附上源代码!

in #cn6 years ago (edited)


自从学了Python了之后,不停的在练习,今天就拿百度练下手爬取实时热点,需要用的库有requests_html  非常的简单! 程序运行结果如下图:


这里要简单说下:用到了css选择器,选择list-title的元素对象,还有需要注意的是这里百度的页面需要编码,因为不是UTF-8的!  r.encoding=r.apparent_encoding  用这个即可解决!  获取的链接是一个集合,我们只需要for 遍历输出即可!

下面附上源代码,如有不足的地方欢迎大神指出!

from requests_html import  HTMLSession
session=HTMLSession()

def baidu():
    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'
    }
    url='http://top.baidu.com/buzz?b=1&fr=topindex'
    r=session.get(url,headers=headers)
    r.encoding=r.apparent_encoding
    r=r.html.find('.list-title')
    top=1
    for  i in r:
        print(top,'-'+i.text)
        for x in i.links:
            print(x)
        top+=1


if __name__ =='__main__':
    baidu()