在Python爬蟲界,誰不認(rèn)識B哥(BeautifulSoup)?
# 我們再用for迴圈打印出來
Python之所以被說很好上手,其中一個原因是很多你想的到的功能,網(wǎng)路上都已經(jīng)有人寫好套件了,你只需要開啟cmd或是其他的文字介面,pip install xxx,再看看套件怎麼用就好。
今天我們要pip的東西有兩個,requests和BeautifulSoup。
pip完這兩個套件後,就可以開始我們今天的標(biāo)題了。
至於為什麼要爬場外休憩區(qū)?爬一個從國中荼毒我到現(xiàn)在的地方需要理由嘛?
首先,呼叫這兩個套件
import requests
from bs4 import BeautifulSoup
from bs4 import BeautifulSoup
再來,就是我們要的場外網(wǎng)址:
url = "https://forum.gamer.com.tw/B.php?bsn=60076"
#向目標(biāo)網(wǎng)址傳送一個Get的請求。其實url可以不用特地分開啦,只是個人習(xí)慣。r = requests.get(url)r = requests.get("https://forum.gamer.com.tw/B.php?bsn=60076")
#將我們get下來的東西,用html.parser解析
soup = BeautifulSoup(r.text,"html.parser")#呼叫find_all函數(shù),找尋標(biāo)籤a中的class:b-list__main__title
官方的範(fàn)例:
soup.find_all("p", "title")# [<p class="title"><b>The Dormouse's story</b></p>]
sel = soup.find_all("a","b-list__main__title")
抓下來的東西,我記得是以List的形式
# 我們再用for迴圈打印出來
for i in sel:
print(i.string)
print("https://forum.gamer.com.tw/"+i["href"])
print(i.string)
print("https://forum.gamer.com.tw/"+i["href"])
完整程式碼:
import requests
from bs4 import BeautifulSoup
url = "https://forum.gamer.com.tw/B.php?bsn=60076"
r = requests.get(url)
soup = BeautifulSoup(r.text,"html.parser")
sel = soup.find_all("a","b-list__main__title")
for i in sel:
print(i.string)
print("https://forum.gamer.com.tw/"+i["href"])
from bs4 import BeautifulSoup
url = "https://forum.gamer.com.tw/B.php?bsn=60076"
r = requests.get(url)
soup = BeautifulSoup(r.text,"html.parser")
sel = soup.find_all("a","b-list__main__title")
for i in sel:
print(i.string)
print("https://forum.gamer.com.tw/"+i["href"])
執(zhí)行結(jié)果:
【投稿】場外進(jìn)版圖招募 (請注意要用新size了喔~)
https://forum.gamer.com.tw/C.php?bsn=60076&snA=3919777&tnum=342
【公告】場外置頂板務(wù)建議區(qū)
https://forum.gamer.com.tw/C.php?bsn=60076&snA=4548839&tnum=152
【公告】場外精華好文推薦區(qū)《誠徵精華組員》
https://forum.gamer.com.tw/C.php?bsn=60076&snA=4549786&tnum=122
【討論】新增板規(guī)投票的討論
https://forum.gamer.com.tw/C.php?bsn=60076&snA=5113102&tnum=165
【認(rèn)真】雨過天晴,我們總會和你站在一起
https://forum.gamer.com.tw/C.php?bsn=60076&snA=5169835&tnum=51
【討論】想學(xué)投資的都進(jìn)來 更新學(xué)生該如何投資定期定額(創(chuàng)了一個Line群歡迎加入)
https://forum.gamer.com.tw/C.php?bsn=60076&snA=5224676&tnum=139
【閒聊】在學(xué)畫畫的 聽到什麼會發(fā)瘋啊....
https://forum.gamer.com.tw/C.php?bsn=60076&snA=5235711&tnum=1
【閒聊】議員指控警察幫館長圍事? 新北警方說話了
https://forum.gamer.com.tw/C.php?bsn=60076&snA=5234996&tnum=15
【楓谷】拒絕85代製代洗代抽,新職業(yè)開拓者+14週年活動
https://forum.gamer.com.tw/C.php?bsn=60076&snA=4667536&tnum=56254
【閒聊】總是有某些人,天天都看的到它發(fā)文
https://forum.gamer.com.tw/C.php?bsn=60076&snA=5235710&tnum=1
【心得】克洛船長太強了吧
https://forum.gamer.com.tw/C.php?bsn=60076&snA=5234999&tnum=17
【場外MLTD串】 #10673:52天眾製作方法,估狗精生日快樂 !
https://forum.gamer.com.tw/C.php?bsn=60076&snA=4019057&tnum=10977
【閒聊】F1賽車討論串 德國站end max冠軍
https://forum.gamer.com.tw/C.php?bsn=60076&snA=4326047&tnum=571
【閒聊】剛剛店長叫我報到惹
https://forum.gamer.com.tw/C.php?bsn=60076&snA=5235705&tnum=3
【問題】這是什ㄇ動漫的截圖ㄚ(誰再貼破貓圖等著被吊起抽插==)
https://forum.gamer.com.tw/C.php?bsn=60076&snA=4629987&tnum=1420
【心得】肥宅就是要活的有自信
https://forum.gamer.com.tw/C.php?bsn=60076&snA=5235600&tnum=16
【情報】十歲女童遭假GM要求做…「裸照驗證」!不然將封鎖遊戲
https://forum.gamer.com.tw/C.php?bsn=60076&snA=5235617&tnum=4
【閒聊】我是靠著愛去面對社會的黑暗面的
https://forum.gamer.com.tw/C.php?bsn=60076&snA=5235380&tnum=6
【問題】在這串回復(fù)的人都能拿到6倍ㄊㄓ
https://forum.gamer.com.tw/C.php?bsn=60076&snA=5235230&tnum=21
【討論】場外貓咪大戰(zhàn)爭串
https://forum.gamer.com.tw/C.php?bsn=60076&snA=3861316&tnum=2865
【閒聊】來幫樓上想一個符合他的暱稱的超能力吧~
https://forum.gamer.com.tw/C.php?bsn=60076&snA=5235702&tnum=9
【問題】健身少女會不會反而比拳願阿修羅還紅
https://forum.gamer.com.tw/C.php?bsn=60076&snA=5203151&tnum=5
【心得】CREEPER?
https://forum.gamer.com.tw/C.php?bsn=60076&snA=5235269&tnum=68
【情報】我是羅大佑看著我 卡緊結(jié)束ㄟ
https://forum.gamer.com.tw/C.php?bsn=60076&snA=5072695&tnum=9
場外魔物(MHW)串 第548天 倒數(shù)40天 官方送一顆攻擊珠記得上線拿
https://forum.gamer.com.tw/C.php?bsn=60076&snA=4717517&tnum=2327
【問題】麥當(dāng)勞報報有夠難用
https://forum.gamer.com.tw/C.php?bsn=60076&snA=5235709&tnum=1
【閒聊】7/29 每日動物朋友 & 煙草
https://forum.gamer.com.tw/C.php?bsn=60076&snA=5234045&tnum=26
【問題】為什麼我甚麼事情都做不好
https://forum.gamer.com.tw/C.php?bsn=60076&snA=5235703&tnum=5
【討論】假如有隔空巴五毛的超能力?
https://forum.gamer.com.tw/C.php?bsn=60076&snA=5235659&tnum=4
【問題】去應(yīng)徵工作20家是基本嗎
https://forum.gamer.com.tw/C.php?bsn=60076&snA=5235613&tnum=19
參考資料:
-----分隔線-----
更新寫法
from bs4 import BeautifulSoup
import urllib.request as req
url = "https://forum.gamer.com.tw/B.php?bsn=60076"
# 建立一個Request物件 .附加RequestHeaders的資訊
request = req.Request(url,headers={"User-Agent":'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.125 Safari/537.36'
})
with req.urlopen(request) as response:
data = response.read().decode('utf-8')
soup = BeautifulSoup(data,"html.parser")
sel = soup.find_all("a","b-list__main__title")
for i in sel:
print(i.string)
print("https://forum.gamer.com.tw/"+i["href"])
import urllib.request as req
url = "https://forum.gamer.com.tw/B.php?bsn=60076"
# 建立一個Request物件 .附加RequestHeaders的資訊
request = req.Request(url,headers={"User-Agent":'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.125 Safari/537.36'
})
with req.urlopen(request) as response:
data = response.read().decode('utf-8')
soup = BeautifulSoup(data,"html.parser")
sel = soup.find_all("a","b-list__main__title")
for i in sel:
print(i.string)
print("https://forum.gamer.com.tw/"+i["href"])