iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 5
0
AI & Data

蟲王養成 - scrapy系列 第 5

Day5 : select 和find 抓取tag

先前發文
DAY 01 : 參賽目的與規劃
DAY 02 : python3 virtualenv 建置
DAY 03 : python3 request
DAY 04 : 使用beautifulsoup4 和lxml
DAY 05 : select 和find 抓取tag


來使用select 或find 來抓取資料吧!

一樣先抓到網站並解析丟給變數

import requests
from bs4 import BeautifulSoup
homepage = requests.get('https://www.ptt.cc/bbs/hotboards.html')

soup = BeautifulSoup(homepage.text,'lxml')

ctrl + shift + i 切到Elements(右圖) 並ctrl + shift + c 選到網頁點擊你要抓取的資料位置(左圖)

在上圖可以看出 每個tag的差異大部分都在class , 如果是看整個完整的網頁可以看到 id 和class 或是其他不常見的屬性

  • find : 找到第一筆符合條件的資料
  • find_all : 找到所有符合條件的資料
  • select : 找到所有符合條件的資料
  • select_one : 找到第一筆符合條件的資料
  • select : class使用 . id 使用 #來抓取
  • find : 如下列code

使用select和find來抓取的範例如下:
code 意思是 把解析後的資料用find找尋一筆透過條件(tag為a , class為board)的資料並給board_find變數

board_find = soup.find('a', class_= 'board')
board_select = soup.select_one('a.board')

今天就先這樣了 , 來修專案了QAQ~

聽歌聽歌! 唱歌唱歌!
甜約翰 Sweet John - 失蹤人口 Missing You

明天來 爬蟲 list取值!


上一篇
Day4 : 使用beautifulsoup4 和lxml
下一篇
DAY 06 : soup解析後 list取值
系列文
蟲王養成 - scrapy30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言