1. 程式人生 > 其它 >爬蟲資料分析(bs4,xpath,正則表示式)

爬蟲資料分析(bs4,xpath,正則表示式)

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的使用