python爬蟲實戰之圖靈社區圖書信息的爬取
程序的描述
- 目標
- 獲取圖靈社區(https://www.ituring.com.cn/book)中40本圖書的書名
- 將獲取的信息以列表的形式輸出到屏幕上,並加上相關的序號
- 描述:
- 獲取翻頁接口
- 獲取相關信息的位置
- 技術路線:requests——BeautifulSoup庫
準備工作
- 獲取翻頁的關鍵字
自然而然地就看見關鍵字是page,修改&page就可以翻頁
-
獲取書名和作者地在網頁中的信息
- 自然而然地看見,有四個書名,從形式上來看,三個用字符串保存,一個用標籤保存。所以這裏採用標籤式,而用標籤,重點在於分析清楚標籤之間地彼此架構關係,通過對比發現< h4 > … < /h4 >,所有地h4標籤裏面都是書名
程序編寫
-
第一步,確定步驟,並將所有的步驟
- 提交網頁的url,循環獲取頁面 getHTMLText()
- 對於每個頁面,提取每本圖書的名稱getNAME()
- 將信息輸出到屏幕上 printBOOKLIST()
- 採用main函數將所有的函數連接起來
-
第二步,逐步完善
from bs4 import BeautifulSoup
import requests
# 獲取相關的網址
def getHTML(url):
r = requests.get(url,timeout = 30)
r.raise_for_status()
r.encoding = r.apparent_encoding
return r.text
# 對網頁的text內容進行分析
def paesrHTML(text,ilt):
soup = BeautifulSoup(text,'html.parser')
for i in soup('h4'):
ilt.append(i.string)
# 將分析的內容進行輸出
def printMessage(ilt):
text = '{:<10}\t{:<10}'
print(text.format("序號","書名"))
count = 1
for i in ilt:
print(text.format(count,i))
count += 1
def main():
url = "https://www.ituring.com.cn/book?tab=book&sort=hot&page="
page = 0
ilt = list()
for i in range(4):
text = getHTML(url + str(i))
paesrHTML(text,ilt)
printMessage(ilt)
main()
總結
- 雖然很簡單,而且有點搓,但是畢竟是第一次獨立的編寫爬蟲軟件,發現很多東西並沒有融會貫通,寫的時候還是會看很多的參考信息