iT邦幫忙

0

爬蟲 crawler 基礎 - requests + BeautifulSoup (part2)

延續上一章節,當我們用 requests 取得網站內容後,
就可以使用 BeautifulSoup 來解析網頁資料!

select 的使用方式

功能

  • select()
    • class 使用 " . "
    • id 使用 " # "
      範例: 我們要取得標題跟網址,從圖片中可以看到內容是包覆在 <div class="block_content">
      接著下一層是 <div class="piece clearfix"><h3>、最後出現在 <a> 中。

https://ithelp.ithome.com.tw/upload/images/20200811/20118435ymNrIgkjcI.png

程式碼:

import requests
from bs4 import BeautifulSoup
     
url = 'https://www.ettoday.net/news/focus/政治/'
res = requests.get(url).text
content = BeautifulSoup(res, 'lxml')

for i in content.select('.block_content .piece h3 a'):
    print(i['title'])
    print('https://www.ettoday.net' + i['href'])
    print('----------------')

https://ithelp.ithome.com.tw/upload/images/20200811/20118435YmxFHxvguu.png


  • find()
    • 較適合用在爬取單一內容

新聞中的內文均包在 <div class="story" itemprop="articleBody">
https://ithelp.ithome.com.tw/upload/images/20200811/20118435k7EsUke2gX.png
程式碼:

import requests
from bs4 import BeautifulSoup
     
url = 'https://www.ettoday.net/news/20200811/1781998.htm'
res = requests.get(url).text
content = BeautifulSoup(res, 'lxml')

article = content.find('div',{'itemprop':"articleBody"}).get_text(strip=True)
print(article)

https://ithelp.ithome.com.tw/upload/images/20200811/20118435RHPrrkrGvE.png


圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言