實戰準備:要爬取的url:https://www.shicimingju.com/book/sanguoyanyi.html 實戰要求:爬取詩詞名句網站中的三國演義文章,將每章的標題和內容寫入自己的項目文件(sanguo.txt) (本次爬取使用bs4) 1 import requests 2 # ...
實戰準備:要爬取的url:https://www.shicimingju.com/book/sanguoyanyi.html
實戰要求:爬取詩詞名句網站中的三國演義文章,將每章的標題和內容寫入自己的項目文件(sanguo.txt)
(本次爬取使用bs4)
1 import requests 2 # 實例化BeautifulSoup對象 3 from bs4 import BeautifulSoup 4 if __name__ == "__main__": 5 #設置User-Agent將爬蟲偽裝成用戶通過瀏覽器訪問 6 header = { 7 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.67 Safari/537.36 Edg/87.0.664.55' 8 } 9 #要訪問的網頁url地址 10 url = 'https://www.shicimingju.com/book/sanguoyanyi.html' 11 #發起請求 12 respond = requests.get(url=url,headers=header) 13 #通過實例化獲取網頁源碼 14 soup1 = BeautifulSoup(respond.content,'lxml') 15 #select返回列表,找到連接標簽 16 title = soup1.select('.book-mulu a') 17 #打開sanguo.txt文件,設置位元組碼格式避免亂碼 18 fp = open('./sanguo.txt','w',encoding='utf-8') 19 #迴圈title列表裡的鏈接 20 for i in title: 21 #通過.string獲取a鏈接下的直系文本作為標題 22 title = i.string 23 #補全a連接,獲取特定的href屬性 24 data_url = "https://www.shicimingju.com"+i['href'] 25 #對a連接的url進行請求,進一步獲取鏈接里的文章 26 soup2 = BeautifulSoup(requests.get(url=data_url,headers=header).content,'lxml') 27 #找到文章所在的標簽 28 content = soup2.find('div',class_='chapter_content') 29 #將文章標題及其文章的內容獲取到寫入剛剛打開的文件 30 fp.write(title+":"+content.text+"\n") 31 print(title+"爬取成功") 32 print("Over")
*bas4知識梳理在博客中Python知識梳理中