網絡爬蟲獲取微博熱搜


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