日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python爬取微博热搜榜

發布時間:2024/1/8 python 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python爬取微博热搜榜 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

python爬取微博熱搜榜

最近應我大學室友得需求,做了一個簡單的爬蟲案例,先給大家看一下程序運行效果


接下來就是貼出代碼了,在這里我會做一些簡單說明,對如剛入門的同學可能會有所幫助,這里使用的是python3

  • 需要引入的包,這兩個包可能需要自行下載

    urllib lxml
  • 代碼

    import urllib.request #導入urllib.request庫 import urllib.parse from lxml import etree#b = str(input("請輸入:")) #提示用戶輸入信息,并強制類型轉換為字符串型def weibo() :url = 'https://s.weibo.com/top/summary?'a = urllib.request.urlopen(url) #打開指定網址html = a.read() #讀取網頁源碼html = html.decode("utf-8") #解碼為unicode碼# print(html) #打印網頁源碼tree = etree.HTML(html)list = tree.xpath(u'//*[@id="pl_top_realtimehot"]/table/tbody/tr/td[@class="td-02"]')prefix = 'https://s.weibo.com' # 微博域名weiboSummary = open("微博熱搜.txt", 'w') #打開并寫入文件for index,item in enumerate(list):if index > 0:a_element = item.xpath('.//a')[0]title = a_element.text # 關鍵詞href = urllib.parse.unquote(a_element.attrib.get('href')) # 鏈接href = href.replace("#", "%23") #此處是對鏈接中的#號做一個編碼轉換,否則無法跳轉指定關鍵詞鏈接hot = item.xpath('./span')[0].text #熱度指數line = str(index) + "\t" + title + "\t" + hot + "\t" + prefix + href + "\n"print(line.replace("\n", ""))if href.find("javascript:void(0)") != -1:line = str(index) + "\t" + title + "\t" + hot#寫入文件weiboSummary.write(line)else:title = '排名\t關鍵詞\t熱度\t鏈接\n'print(title.replace("\n",""))weiboSummary.write(title)weiboSummary.close()#調用方法 weibo();
  • 遇到的問題

    1).這是本文中關于lxml的一些簡單用法

    代碼中的 etree.HTML(html)是獲取頁面源碼對象

    獲取到節點對象以后可以使用 xpath()來獲取元素內容,此處可以使用下圖中的方法,注意:該方法類似于JQuery的類選擇器,如果按xpath('//a')這種寫法,獲取的是頁面中所有的a標簽。

    u代表的是編碼方式

    element = tree.xpath(u'//*[@id="pl_top_realtimehot"]/table/tbody/tr/td[@class="td-02"]')

    element.text獲取的是當前對象標簽中的文本

    屬性的話我們可以通過element.attrib.get('標簽中的屬性名')這種方式獲取標簽屬性的內容

    詳細的lxml文檔操作可以自行百度

    2). 關于IO

    我在使用python的IO操作時候遇到一些問題

    具體的錯誤原因我還尚不明確,不過導致報錯的原因是因為我導入了 IO 的包,python中本身帶有IO操作的相關API
    我們只需要直接調用就可以
    例如:open('weibo.txt', 'w') 不需要使用 os.open('weibo.txt')使用完之后要記得關閉資源

  • 此處感謝:https://blog.csdn.net/lyandgh/article/details/81013897

    總結

    以上是生活随笔為你收集整理的python爬取微博热搜榜的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。