爬蟲資料分析(bs4,xpath,正則表示式)
阿新 • • 發佈:2022-03-28
1、bs4的BeautifulSoup函式的使用:將獲取的網頁格式的文字解析,之後獲取想要的資料
from bs4 import BeautifulSoup import requests headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.74 Safari/537.36'} url = "http://sanguo.5000yan.com/" page_text = requests.get(url ,headers = headers).content ## 傳入解析器:lxml 比如解析成中文 排版 soup = BeautifulSoup(page_text,'lxml') #從解析之後的內容取值想要的內容: 有幾種方式方法 --可搜尋 <soup.select()函式的使用用法> 檢視 li_list = soup.select('main > div > ul > li') fp = open('./sanguo.txt','w',encoding='utf-8') #開啟一個檔案 如果沒有的話就建立一個 for li in li_list: #下面這段的意思 <li class="menu-item"><a href="https://sanguo.5000yan.com/1083.html">第一百一十九回 假投降巧計成虛話 再受禪依樣畫</a></li> ------->>>>> <a href="https://sanguo.5000yan.com/965.html">第一回 宴桃園豪傑三結義 斬黃巾英雄首立功</a> ----->>>>> 第一回 宴桃園豪傑三結義 斬黃巾英雄首立功 title = li.a.string # 取a 裡面的標題 #取a中的網址 進行深入二度爬蟲 detail_url = li.a['href'] detail_page_text = requests.get(detail_url,headers = headers).content detail_soup = BeautifulSoup(detail_page_text,'lxml') #傳入解析器 解析排版 div_tag = detail_soup.find('div',class_="grap") #抓取想要的內容 content = div_tag.text fp.write(title+":"+content+'\n') #寫入檔案裡面 print(title,'爬取成功!!!')
2、xpath的使用