网络爬虫获取微博热搜


import requests
from bs4 import BeautifulSoup
import bs4
ulist=[]#定义一个空列表
#用request抓取网络信息
def getHTMLText(url):
    try:
        headers =  { 'User-Agent': '5498'}
        r = requests.get(url, timeout=30, headers=headers)#输入获取的url信息,输出是url的内容
        r.raise_for_status()               #用raise_for_status产生异常信息
        r.encoding = r.apparent_encoding  # 修改编码
        return r.text    #将网页的内容返回给程序的其他部分
    except:
        return '产生异常'      #出现错误,则输出产生异常
def fillList(ulist, html):
    soup = BeautifulSoup(html, "html.parser")
    for tr in soup.find('tbody').children:   #for语句查找tbody标签,并且将孩子children遍历
#isinstance对函数进行判断,检测tr标签的类型,如果tr不是bs4定义的Tag类型, 
#将过滤掉(并且为了代码可以运行需要引入一个新的类型bs4)
        if isinstance(tr, bs4.element.Tag):
            tds = tr('td')    #将所有的td 标签存为一个列表类型
            ulist.append([tds[1].string, tds[2].string])
#将ulist信息打印出来          
def printList(ulist, num):          
    print("{:^6}\t{:^4}".format("            标题", "         点击量"))#输出标题,点击量,控制距离
    #下面实现对其他信息的打印
    for i in range(num):
        u = ulist[i]
        print("{:^6}\t{:^10}".format(u[0], u[1]))
def main():
    # 新闻信息放到列表中
    uinfo = []      
    url = "https://tophub.today/n/KqndgxeLl9"
    # 将url转换成html
    html = getHTMLText(url)  
    fillList(uinfo, html)
    printList(uinfo, 10)   
main()

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM