Python學習記錄 專案案例實現 爬蟲篇 06

2021-10-20 16:28:47 字數 2354 閱讀 5539

專案**

爬取三國演義章節標題和章節全文內容(使用bs4解析)

本次專案使用**為詩詞歌賦網,開啟對應的url:對該url發請求拿到原始碼資料。

header =

# ua偽裝

# 對首頁的頁面資料進行爬取

url =

''page_text = requests.get(url=url, headers=header)

.text

soup = beautifulsoup(page_text,

'lxml'

)# 從網際網路中獲取資料的語句編寫方法

li_list = soup.select(

'.book-mulu > ul > li'

)

對需求進行分析可知,本次需要拿到的資料為詳情頁url位址,以及詳情頁文章資料,故分兩步實現。首先獲取詳情頁url位址,然後逐一對獲取到的位址發請求,拿到響應資料。由於想獲取的是全文資料,很顯然這裡需要用迴圈。

for li in li_list:

title = li.a.string

detail_url =

''+ li.a[

'href'

] detail_page_text = requests.get(url=detail_url, headers=header)

.text

# 解析出詳情頁中的相關章節內容

soup_detail = beautifulsoup(detail_page_text,

'lxml'

) div_tag = soup_detail.find(

'div'

, class_=

'chapter_content'

)# 標籤屬性定位

# 解析章節內容

content = div_tag.get_text(

) fp.write(title +

':'+ content +

'\n'

)print

(title,

'爬取成功'

)

本專案整體**如下:

# -*- coding: utf-8 -*-

# @author : qin

# @time : 2021/2/27 15:11

# @function :

from bs4 import beautifulsoup

import requests

if __name__ ==

'__main__'

: header =

# 對首頁的頁面資料進行爬取

url =

''page_text = requests.get(url=url, headers=header)

.text

# 例項化乙個bs物件

soup = beautifulsoup(page_text,

'lxml'

)# 從網際網路中獲取資料的語句編寫方法

li_list = soup.select(

'.book-mulu > ul > li'

) fp =

open

('./三國演義.txt'

,'w'

, encoding=

'utf-8'

)for li in li_list:

title = li.a.string

detail_url =

''+ li.a[

'href'

] detail_page_text = requests.get(url=detail_url, headers=header)

.text

# 解析出詳情頁中的相關章節內容

soup_detail = beautifulsoup(detail_page_text,

'lxml'

) div_tag = soup_detail.find(

'div'

, class_=

'chapter_content'

)# 標籤屬性定位

# 解析章節內容

content = div_tag.get_text(

) fp.write(title +

':'+ content +

'\n'

)print

(title,

'爬取成功'

)

注意,在爬取的過程中要注意防止亂碼出現,要是出現亂碼要規定**風格為utf-8。

Flink 專案案例實操01

專案詳情 基於實時計算,您可以輕鬆完成實時欺詐檢測系統。實時欺詐檢測系統能夠及時發現使用者高危行為並採取措施,降低損失。實時欺詐檢測 風控 系統流程如下 實時計算訂閱訊息佇列,過濾出感興趣的行為,比如 購買 領券 瀏覽等。實時計算計算把這個行為特徵化。實時計算通過udf呼叫外部乙個風險模型,判斷這次...

Python學習記錄(一) 入門案例練習

本文旨在記錄我的python學習過程中的案例練習,記錄我的程式設計技術成長過程。分析 設計乙個重量轉換器,將輸入的以g為單位的重量數值轉換為以kg為單位的重量數值。實現 def dan wei zhuan huan t zhuan huan hou t 1000 return str zhuan h...

Hadoop實訓學習記錄

聯合概率 聯合概率是指在多元的概率分布中多個隨機變數分別滿足各自條件的概率。假設x和y都服從正態分佈,那麼p就是乙個聯合概率,表示x 4,y 0兩個條件同時成立的概率。表示兩個事件共同發生的概率。a與b的聯合概率表示為 p ab 或者p a,b 或者p a b 假設x和y都服從正態分佈,那麼p就是乙...