Python爬蟲實戰,urllib模組,爬取中國工程院院士資訊並儲存txt
阿新 • • 發佈:2022-12-08
前言
今天用Python爬蟲中國工程院院士簡介,在這裡給需要的小夥伴們程式碼,並且給出一點小心得。
開發工具
Python版本: 3.8
相關模組:
urllib模組
re模組
time模組
環境搭建
安裝Python並新增到環境變數,pip安裝需要的相關模組即可。
頁面獲取
開啟工程院官方網站,F12或者滑鼠右鍵檢視全部院士名單,檢視原始碼,進行簡單分析,得到規律,以便後面設計正則表示式(建議使用谷歌瀏覽器)
完整程式碼實現
import re import os import os.path import time from urllib.request import urlopen dstDir = 'YuanShi' if not os.path.isdir(dstDir): os.mkdir(dstDir) startUrl = r'http://www.cae.cn/cae/html/main/col48/column_48_1.html' with urlopen(startUrl) as fp: content = fp.read().decode() # 提取並遍歷每位大牛連結 pattern = r'<li class="name_list"><a href="(.+)" target="_blank">(.+)</a></li>' result = re.findall(pattern, content) for item in result: perUrl, name = item # 測試是否獲取資訊 print(perUrl) # 這裡根據初爬結果進行改進 name = name.replace('<h3>', '').replace('</h3>', '') name = os.path.join(dstDir, name) perUrl = r'http://www.cae.cn/' + perUrl with urlopen(perUrl) as fp: content = fp.read().decode() # 抓取簡介 pattern = r'<p>(.+?)</p>' result = re.findall(pattern, content) # 返回string中所有與pattern匹配的全部字串,返回形式為陣列。 if result: intro = re.sub('(<a.+</a>)|( )|( );', '', '\n'.join(result)) with open(name + '.txt', 'w', encoding='utf8') as fp: fp.write(intro)
最後
今天的分享到這裡就結束了 ,感興趣的朋友也可以去試試哈
對文章有問題的,或者有其他關於python的問題,可以在評論區留言或者私信我哦
覺得我分享的文章不錯的話,可以關注一下我,或者給文章點贊(/≧▽≦)/