有一分熱,發一分光,爬取魯迅先生《經典語錄》

 

 

前言

《後浪》看的人熱血沸騰。B站版本視頻的底部,評論最多的一段話之一便是魯迅先生這句。

“願中國青年都擺脫冷氣,只是向上走,不必聽自暴自棄者流的話。能做事的做事,能發聲的發聲。有一分熱,發一分光,就令螢火一般,也可以在黑暗裏發一點光,不必等候炬火。”

本文通過“好句子迷”網站,獲取了魯迅先生的大部分經典語錄,並保存到了本地excel文件,這些發人深省的句子真的該好好讀一讀。

用到的模塊


 
import requests
from lxml import etree
import pandas as pd
import time

獲取數據:

 

 

通過“好句子迷”網站,獲取網頁。

利用request模塊,通過URL鏈接,獲取html網頁,下一步進行網頁分析。

其中,URL只有最後一部分發生改變(1-10 :代表第1頁--第10頁的全部內容)


 
# 1、獲取數據
headers = {"user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) " \
                         "AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.129 Safari/537.36",
           }

for i in range(0, 9):
    url = "http://www.shuoshuodaitupian.com/writer/128_" + str(i + 1)  # 1-10頁
    result = requests.get(url, headers=headers).content.decode()

解析數據:

通過Xpath語句解析,分別獲取句子的內容、來源和評分等,如圖所示。

把獲取的每一組數據,放在一個字典裏,再把字典追加到一個列表中。

 

 

代碼部分:


 
# 2、解析數據
html = etree.HTML(result)
div_list = html.xpath('//div[@class="item statistic_item"]')
div_list = div_list[1:-1]

for div in div_list:
    # 遍歷每一條信息

    item = {}

    # ./ 注意從當前節點,向下獲取
    item['content'] = div.xpath('./a/text()')[0]
    item['source'] = div.xpath('./div[@class="author_zuopin"]/text()')[0]
    item['score'] = div.xpath('.//a[@class="infobox zan like "]/span/text()')[0]

    item_list.append(item)

print("正在爬取第{}頁".format(i + 1))
time.sleep(0.1)

保存數據:

把上述獲取的數據放到一個列表中後,可通過pandas模塊把數據類型轉變爲DataFrame,進而可以輕鬆地保存到excel文件中。

爲防止中文亂碼,注意編碼格式。


 
# 3、保存數據

df = pd.DataFrame(item_list) # 把數據存成csv文件
df.to_csv('魯迅經典語錄.csv', encoding='utf_8_sig') # 保證不亂碼

按照評分進行排序之後的結果,如下圖。

 

如果你處於想學Python或者正在學習Python,Python的教程不少了吧,但是是最新的嗎?說不定你學了可能是兩年前人家就學過的內容,在這小編分享一波2020最新的Python教程。獲取方式,私信小編 “ 資料 ”,即可免費獲取哦!

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