iT邦幫忙

2022 iThome 鐵人賽

DAY 16
0
Software Development

爬蟲基礎入門與實際應用系列 第 16

DAY16、專題一:惜物網 (2)

  • 分享至 

  • xImage
  •  

今天來實作


首先寫個簡單的程式確定requests能夠正常的把頁面抓下來。
headers可以直接抄你在開發者工具中看到的,cookie不用抄。用dict的型式寫下來。
post的內容的話也抄昨天那個就行。也一樣用dict的形式寫下來。
post的目標url一樣可以在標頭頁籤抄到。
https://ithelp.ithome.com.tw/upload/images/20221001/20152706xArNToOO3D.png

寫完後大概會長下面這樣。

import requests

headers = { 
'Host' : 'shwoo.gov.taipei',
'User-Agent' : 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:105.0) Gecko/20100101 Firefox/105.0',
'Accept' : 'image/avif,image/webp,*/*',
'Accept-Language' : 'zh-TW,zh;q=0.8,en-US;q=0.5,en;q=0.3',
'Accept-Encoding' : 'gzip, deflate, br',
'Connection' : 'keep-alive',
'Referer': 'https://shwoo.gov.taipei/shwoo/browse/browse00/advancedQuery?isRecyclerLink=N&q_unit1value4C=',
'Sec-Fetch-Dest' : 'image',
'Sec-Fetch-Mode' : 'no-cors',
'Sec-Fetch-Site' : 'same-origin'
}

jData = {
	"showPage": "1",		
	"showType": "null",		
	"hsn_cd_query": "null",	
	"item1": "C",			
	"order": "1",			
	"keyword": "台灣電力"			
}

url = 'https://shwoo.gov.taipei/shwoo/browse/browse00/index'

html = requests.post(url, data = jData, headers = headers)

with open('tmp.html', 'w', encoding='utf8') as i:
	i.write(html.text)

正常的話應該可以看到同資料夾存下來了html的內容。
接著就打開來看一下裡面的東西是否正常,就確定有沒有自己需要的資訊在裡面就行。
https://ithelp.ithome.com.tw/upload/images/20221001/20152706y267S5PX4O.png
像這邊可以看到出價和商品名就可以算正常了。


順帶一提多post幾次之後可以發現post過去資訊的格式大概是這樣
https://ithelp.ithome.com.tw/upload/images/20221001/20152706Z7zYRgrdxt.png
不過真的在寫時也可以在網路上輸好條件在從post的資訊直接複製過去就行了。


接著來試著用bs4抓出頁面的資訊。
這裡我主要是想抓日期、商品名和底價跟出價,所以就拿那個超好用的箭頭點一下需要的資訊。
https://ithelp.ithome.com.tw/upload/images/20221001/20152706yDFziVngbo.png
多點幾個後可以看到它們都在div.caption底下。其中的div是標籤而caption是class。
所以這邊用select來選會比較方便,因為用CSS選擇器能夠很方便的選擇一定範圍的class。
在前述的程式碼下面加上bs4的區塊。

soup = BeautifulSoup(html.text, 'html.parser')
for i in soup.select('div.caption'):
	print(i)

一樣檢查一下輸出的資訊,可以看到有確實抓出來需要的資訊。
https://ithelp.ithome.com.tw/upload/images/20221001/20152706malH5WcoPM.png

然後就繼續細分一下需要的資訊,這裡使用dict來儲存。


明天繼續講要怎麼爬完各網頁。


上一篇
DAY15、專題一:惜物網 (1)
下一篇
DAY17、專題一:惜物網 (3)
系列文
爬蟲基礎入門與實際應用30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言