[Python爬蟲]使用Python爬取靜態網頁-鬥魚直播

作者:宅必備 Python愛好者社區--專欄作者

一個會寫Python的Oracle DBA

個人公眾號:宅必備

公眾號:Python愛好者社區

作者其他文章:

[Python程序]利用微信企業號發送報警信息

好久沒更新Python相關的內容了,這個專題主要說的是Python在爬蟲方面的應用,包括爬取和處理部分

第一節我們介紹如何爬取靜態網頁

靜態網頁指的是網頁的內容不是通過js動態載入出來的

我們可以直接使用一些開發者工具查看

這裡我採用谷歌瀏覽器的開發者工具

開發環境

操作系統:windows 10

Python版本 :3.6

爬取網頁模塊:requests

分析網頁模塊:Beautiful Soup 4

模塊安裝

pip3 install requests

pip3 install beautifulsoup4

網頁分析

我們使用爐石傳說的頁面來開始分析

douyu.com/directory/gam

我們可以通過左上角的箭頭來定位網頁內容對應的源

從上面我們可以看出單個直播的信息都在li標籤下面,包括:

    • 封面圖片地址
    • 直播介紹
    • 主播名稱
    • 觀看人數

代碼介紹

這裡逐行介紹代碼

1. import相關的模塊

import requests

from bs4 import BeautifulSoup

2. 使用request模塊打開並獲取網頁內容

verify=False 在打開https網頁時使用

url=douyu.com/directory/gam+douyugame

r = requests.get(url,verify=False)

content=r.content

3. 使用bs4格式化獲取的網頁

這時就可以使用bs4的功能來處理網頁了

soup = BeautifulSoup(content,"lxml")

4. 獲取所有li標籤

這裡獲取所有具有data-cid屬性的li標籤

live_list=soup.find_all(li,attrs = {data-cid : True})

5.循環獲取到li標籤,然後提取需要的信息

我們這裡只提取在線人數大於8000的直播間

game_count=all_game.find(span,attrs = {class : dy-num fr}).text

代表查找一個span標籤,其class屬性值為dy-num fr,然後獲取它的內容

game_link=douyu.com+all_game[href]

代表獲取a標籤中href屬性的值

剩下的同理

6. 最後將獲取到的信息放入字典中

這時我們可以將結果存入資料庫中供查看,這裡就不多說了

執行結果

源碼位置

源碼請訪問我的github主頁

github.com/bsbforever/s

推薦閱讀:

編程小白如何寫爬蟲程序
xpath+mongodb抓取伯樂在線實戰
爬蟲代碼改進(二)|多頁抓取與二級頁面
演示利用爬蟲監測網頁評論
爬蟲的矛與盾

TAG:python爬蟲 | Python | 網頁爬蟲 |