基於Python爬取51cto部落格頁面資訊過程解析
阿新 • • 發佈:2020-08-28
介紹
提到爬蟲,網際網路的朋友應該都不陌生,現在使用Python爬取網站資料是非常常見的手段,好多朋友都是爬取豆瓣資訊為案例,我不想重複,就使用了爬取51cto部落格網站資訊為案例,這裡以我的部落格頁面為教程,編寫的Python程式碼!
實驗環境
1.安裝Python 3.7
2.安裝requests,bs4模組
實驗步驟
1.安裝Python3.7環境
2.安裝requests,bs4 模組
開啟cmd,輸入:pip install requests -i https://pypi.tuna.tsinghua.edu.cn/simple/
再安裝bs4,輸入:pip install bs4 -i https://pypi.tuna.tsinghua.edu.cn/simple/
安裝後面加上-i https://pypi.tuna.tsinghua.edu.cn/simple/ 表示從清華映象下載模組,速度會提高好多!
3.編寫程式碼
# 爬取51cto部落格頁面 import requests import bs4 import re def open_url(url): # 使用代理 # proxies = {"http": "127.0.0.1:1080","https": "127.0.0.1:1080"} headers = { 'user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML,like Gecko) ' 'Chrome/57.0.2987.98 Safari/537.36'} # res = requests.get(url,headers=headers,proxies=proxies) res = requests.get(url,headers=headers) return res def find_titles(res): soup = bs4.BeautifulSoup(res.text,'html.parser') # 部落格名 titles = [] targets = soup.find_all("a",class_="tit") for each in targets: titles.append(each.text.strip()) # 閱讀量 reads = [] read1 = soup.find_all("p",class_="read fl on") read2 = soup.find_all("p",class_="read fl") for each in read1: reads.append(each.text) for each in read2: reads.append(each.text) # 評論數 comment = [] targets = soup.find_all("p",class_='comment fl') for each in targets: comment.append(each.text) # 收藏 collects = [] targets = soup.find_all("p",class_='collect fl') for each in targets: collects.append(each.text) # 彙總 result = [] length = len(titles) for i in range(length): result.append(titles[i] + '\n' + reads[i] + ' ' + comment[i] + ' ' + collects[i] + '\n') return result # 找出一共有多少個頁面 def find_depth(res): soup = bs4.BeautifulSoup(res.text,'html.parser') depth = soup.find('li',class_='next').previous_sibling.previous_sibling.text return int(depth) def main(): host = "https://blog.51cto.com/13760351" res = open_url(host) depth = find_depth(res) result = [] for i in range(1,depth + 1): #範圍是1到6頁 url = host + '/p' + str(i) #網頁連結是後面加上/pi res = open_url(url) result.extend(find_titles(res)) # 寫入文字檔案中 with open("51cto部落格.txt","w",encoding="utf-8") as f: for each in result: f.write(each) #主程式入口 if __name__ == "__main__": main()
4.執行程式碼,檢視效果
阿里雲伺服器安裝postfix--郵箱服務(排坑過程詳解) 薦 置頂 閱讀 10000+ 評論 2 收藏 9 (教科書式教程!)在VMware Workstation 14 上安裝CentOS 7 【送安裝包】 置頂 閱讀 10000+ 評論 10 收藏 0 CentOS 7 系統YUM 安裝MySQL 5.7 閱讀 136 評論 0 收藏 1 Docker 安裝(官方安裝方法) 閱讀 153 評論 0 收藏 0 運維實用工具推薦 閱讀 159 評論 0 收藏 0 K8S 部署 Rancher 2.X 版本 閱讀 1068 評論 0 收藏 0 python 練習題(三) 閱讀 260 評論 0 收藏 0 DNS--域名解析 閱讀 170 評論 0 收藏 0 python 練習題(二) 閱讀 353 評論 0 收藏 0 K8S 使用Dashboard部署nginx群集 閱讀 124 評論 0 收藏 0 CentOS 7 離線部署K8S群集 閱讀 280 評論 0 收藏 0 MySQL函式--數學函式 閱讀 136 評論 0 收藏 0 CentOS 7 安裝SVN 閱讀 192 評論 2 收藏 0 MYSQL 資料庫索引 閱讀 178 評論 0 收藏 0 CentOS 8 深入優化 nginx 服務 閱讀 509 評論 0 收藏 0 CentOS 7 搭建nginx網頁服務 閱讀 207 評論 0 收藏 0 Linux 文字處理利器--Awk常用命令 閱讀 940 評論 0 收藏 0 Liunx 檔案的查詢 閱讀 163 評論 0 收藏 0 Linux 流編輯--Sed命令及語法 閱讀 178 評論 0 收藏 0 MYSQL行為 閱讀 110 評論 0 收藏 0 MYSQL資料庫--連線查詢 閱讀 269 評論 0 收藏 0 MYSQL 資料庫基本操作 閱讀 271 評論 0 收藏 0 Ansible 常用模組 閱讀 119 評論 0 收藏 0 CentOS 8部署自動化運維工具-- Ansible 閱讀 358 評論 0 收藏 0 CentOS 7 部署百萬pv專案(高可用架構) 閱讀 2139 評論 0 收藏 4 MYSQL查詢--子查詢,合併查詢 閱讀 242 評論 0 收藏 0 MySQL偽事務和效能 閱讀 178 評論 0 收藏 0 MYSQL資料庫--定義表和欄位的別名 閱讀 256 評論 0 收藏 0 MYSQL查詢--聚合函式查詢 閱讀 132 評論 0 收藏 0 MYSQL 查詢命令--單表查詢 閱讀 205 評論 0 收藏 0 ELK 平臺收集Tomcat日誌記錄 閱讀 316 評論 0 收藏 0 CentOS 8 部署ELK日誌分析平臺 閱讀 730 評論 0 收藏 0 Docker 資料管理和網路通訊 閱讀 246 評論 0 收藏 0 Docker 映象建立方法 閱讀 143 評論 0 收藏 0 Docker 容器操作 閱讀 195 評論 0 收藏 0 Docker 映象操作 閱讀 143 評論 0 收藏 0 CentOS 8 系統圖形化安裝教程(超詳細) 閱讀 4570 評論 0 收藏 0 Docker 部署 nginx + tomcat 閱讀 501 評論 0 收藏 0 Docker 部署war包專案 閱讀 2173 評論 0 收藏 1 華為雲伺服器安裝 Docker 容器 閱讀 901 評論 0 收藏 0 CentOS 8 安裝docker 容器 閱讀 4848 評論 0 收藏 0 解決 confluence 和 jira 資料包問題 閱讀 225 評論 0 收藏 0 CentOS 7.6 搭建Gitlab教程 閱讀 234 評論 0 收藏 0 confluence 配置郵件伺服器 閱讀 516 評論 0 收藏 0 Shell指令碼實現 tomcat 日誌定時切割 閱讀 263 評論 0 收藏 0 阿里雲伺服器Centos7 配置465埠號傳送郵件 閱讀 774 評論 0 收藏 0 MQTT 限制匿名使用者訪問,開啟使用者密碼認證 閱讀 640 評論 0 收藏 0 CentOS 7.6 部署Redis 資料庫 閱讀 150 評論 0 收藏 0 CentOS 7.6 破解安裝 Confluence 和 Jira(送安裝包和破解工具) 閱讀 5800 評論 0 收藏 0 Centos 7 安裝MQTT(EMQ)服務端 閱讀 943 評論 0 收藏 0 CentOS 7 實現yum安裝最新php版本 閱讀 2527 評論 0 收藏 0 Python3 對檔案操作 閱讀 886 評論 0 收藏 0 Python3 操作Mysql資料庫 閱讀 820 評論 0 收藏 1 Selenium 定位元素的8種方法介紹 閱讀 1536 評論 0 收藏 0 Python Selenium 自動配置zabbix郵箱報警功能 閱讀 568 評論 0 收藏 0 Zabbix 配置QQ郵箱報警通知 閱讀 2043 評論 0 收藏 0 CentOS 7 系統搭建私服倉庫Nexus 閱讀 664 評論 0 收藏 1 解決CentOS 7 最小化安裝後無ifconfig命令 閱讀 687 評論 0 收藏 0 CentOS 7 安裝禪道並繫結公司內網郵箱 閱讀 1161 評論 0 收藏 0 Shell 指令碼自動安裝公司內部郵箱伺服器--Postfix 閱讀 7066 評論 0 收藏 4 解決虛擬機器在橋接模式下設定靜態ip,無法上外網的各種問題 閱讀 10000+ 評論 6 收藏 0 Shell 指令碼自動安裝cobbler(改進+填坑) 閱讀 10000+ 評論 3 收藏 0 Shell 指令碼自動安裝 Cobbler (知識點+踩坑點) 閱讀 5292 評論 0 收藏 6 CentOS 7.4 系統升級至7.6 閱讀 4738 評論 4 收藏 0 超實用技能--快速檢視windows WiFi密碼 閱讀 4518 評論 0 收藏 0 Jenkins自動化部署安卓專案 閱讀 7574 評論 0 收藏 1 記一次阿里雲伺服器安裝Python的血淚史 閱讀 1671 評論 6 收藏 1 Jenkins自動化部署nodejs專案(前端專案) 閱讀 1445 評論 0 收藏 2 Jenkins自動部署釋出Java程式碼(完整教程) 閱讀 9192 評論 0 收藏 1 Jenkins自動化打包--war包 閱讀 9444 評論 2 收藏 3 shell 搭配 python 自動安裝zabbix監控端詳解 閱讀 1112 評論 0 收藏 1 在CentOS 7系統下升級 Jenkins版本(含排坑過程) 閱讀 7223 評論 4 收藏 0 Window 10 安裝python 3.7 + selenium (附最新安裝包) 閱讀 2984 評論 0 收藏 0 CentOS 7 輕鬆安裝Jenkins 閱讀 3259 評論 0 收藏 1 指令碼安裝Discuz論壇(shell + Python 實現自動化安裝) 閱讀 1783 評論 0 收藏 0 Shell指令碼自動原始碼包安裝LA/NMP架構詳解(贈軟體包+指令碼) 閱讀 3068 評論 0 收藏 0 shell指令碼一鍵安裝Tomcat服務 閱讀 2192 評論 0 讚賞 1 【值得收藏!】Vi 文字編輯器細講 閱讀 789 評論 4 收藏 1 企業應用---部署LAMP平臺 + Discuz論壇【贈安裝包】 閱讀 2032 評論 0 收藏 2 【高效裝機】PXE實現無人值守安裝CentOS 6 閱讀 4144 評論 0 收藏 1 在CentOS 7 上安裝Oracle 12c 【贈安裝包】 閱讀 4776 評論 0 收藏 1 輕鬆部署MFS分散式檔案系統 【內附原始碼包】 閱讀 3049 評論 0 收藏 1 Memcached + LAMP 架構安裝詳解【送原始碼包】 閱讀 3523 評論 4 收藏 0 部署MySQL-MMM 高可用群集 閱讀 1123 評論 0 收藏 0 搭建 MySQL 讀寫分離(內附原始碼包) 閱讀 573 評論 2 收藏 1 Mysql資料庫主從複製 閱讀 716 評論 0 收藏 0 mysql資料庫基本命令---多條資料的同時操作 閱讀 999 評論 0 收藏 0 使用Haproxy 搭建web群集 閱讀 496 評論 2 收藏 0 MySQL資料庫原始碼包安裝(5.7最新版本) 閱讀 568 評論 0 收藏 0 解決PXE裝機報警----重複安裝系統,無法進入使用者登入介面 閱讀 1521 評論 0 收藏 0 解決PXE裝系統報警問題----寫入空間不足 閱讀 705 評論 0 收藏 0 Nginx 服務語法正確,服務啟動失敗解決方法 閱讀 767 評論 0 收藏 0 CentOS 7 實現Nginx+Tomcat 負載均衡 閱讀 685 評論 0 收藏 0 Nginx 構建虛擬主機 閱讀 618 評論 0 收藏 0 Nginx 服務安全優化---隱藏版本號、網頁快取、日誌分割 閱讀 599 評論 0 收藏 0 輕鬆部署Tomcat伺服器 閱讀 346 評論 0 收藏 0 Apache網頁安全優化----設定防盜鏈和隱藏版本資訊 閱讀 748 評論 0 收藏 0 手工編譯安裝Apache網站(贈送原始碼包) 閱讀 638 評論 0 收藏 1 Apache構建虛擬web主機 閱讀 747 評論 0 收藏 0 CentOS 6 yum 安裝Apache網站 閱讀 2072 評論 0 收藏 0 搭建AWStats日誌分析系統(內附awstats軟體包) 閱讀 10000+ 評論 0 收藏 0 圖文詳解cobbler 自動裝機教程 (內附epel源) 閱讀 10000+ 評論 8 收藏 2 DNS分離解析教學 超簡單! 閱讀 679 評論 0 收藏 0 FTP服務最安全認證模式---虛擬賬戶訪問 閱讀 4440 評論 0 收藏 0 FTP伺服器--實現本地使用者訪問,拒絕匿名使用者 閱讀 749 評論 0 收藏 0 快速搭建FTP伺服器--實現匿名使用者上傳和下載 閱讀 1296 評論 2 收藏 0 Linux 6.5 伺服器上搭建本地yum倉庫 閱讀 2206 評論 0 收藏 0 【超好用】弱口令掃描工具John the Ripper 圖文教程(附軟體包) 閱讀 2669 評論 4 收藏 1 詳述在Linux上掛載window共享資料夾 閱讀 634 評論 12 收藏 0 Redhat Linux 6.5 圖文詳細安裝教程【附安裝包】 閱讀 7550 評論 8 收藏 2
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。