Python3 爬蟲教程 (二)

從爬取的頁面獲取所需信息

這個需要用到Python的解析庫lxml和xpath的知識,不知道的同學請自行百度,菜鳥或者w3c都有,十分鐘就能搞定個大概,剩下的還是實戰磨合比較好
話不多說,先確定目標,還是那個網站,我們先來爬取一張首頁展示的一個套圖的標題和點進去的url鏈接
在這裏插入圖片描述
就這個吧,含蓄點,不然我怕會出事(尷尬的笑了笑)
首先讓我們按下F12,定位到標題和鏈接的位置
在這裏插入圖片描述
哦,巧了,注意一下下面的紅方框,兩者竟然在一起
那方便了,xpath路徑大差不差
接下來上代碼,不過這裏我就不爬取這一個了,而是把這一頁的所有標題和鏈接都爬出來(話說哪有爬蟲只爬一個呢,我還不如右鍵複製粘貼)

import requests #請求庫用於發送請求
from lxml import html

headers = {
            'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36'
        }

def GetMessage(url):
    page = requests.get(url=url,headers=headers) #也可以直接url,不過這裏習慣了url=
    tree = html.fromstring(page.text) #把那些html按照結構排一下,類似於目錄結構吧
    title = tree.xpath('//span/a/text()')
    name = tree.xpath('//span/a/@href')
    print(title)
    print(name)


if __name__ == '__main__':
    url = 'https://www.mzitu.com'
    GetMessage(url)

在這裏插入圖片描述
數據出來了,但是這個看着怎麼這麼違和呢?
我們稍微調整一下吧

import requests #請求庫用於發送請求
from lxml import html

headers = {
            'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36'
        }

def GetMessage(url):
    page = requests.get(url=url,headers=headers) #也可以直接url,不過這裏習慣了url=
    tree = html.fromstring(page.text) #把那些html按照結構排一下,類似於目錄結構吧
    title = tree.xpath('//span/a/text()')
    url = tree.xpath('//span/a/@href')
    message = []
    for i in range(len(title)):
        mess = {'title': title[i],'url':url[i]}
        message.append(mess)
    print(message)


if __name__ == '__main__':
    url = 'https://www.mzitu.com'
    GetMessage(url)

在這裏插入圖片描述
看,這個數據格式是不是就看着舒服了?

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章