from bs4 import BeautifulSoup
<html>
<head><meta charset="UTF-8"><title>~หน้าทดสอบซุปสวย~</title></head>
<body>
<div class="klongyai">
<div id="huakho"><img src="https://phyblas.hinaboshi.com/rup/thema/qb.png" width="180"><br>
<h3>ว่าด้วยเรื่องของอาหย่อย</h3></div><br><br>
<div class="klonglek" id="wali1">
<a href="walidet/946641382021300"><img src="rup/rupprakopwalidet/946641382021300.jpg"></a>
<h4 class="khokhwam">"ของอร่อยแบบนี้ไม่ว่าจะฤดูไหนมันก็อร่อยอยู่ดีแหละ"</h4>
<span class="chue kirin">#โมริโนะ คิริง</span>
</div>
<br><br><div id="qb">/人◕ ‿‿ ◕人\</div><br><br>
<div class="klonglek" id="wali2">
<a href="walidet/1793364814015615"><img src="rup/rupprakopwalidet/1793364814015615.jpg"><h4 class="khokhwam">"ต่อให้เป็นของที่อร่อยแค่ไหนหากกินทุกวันก็ต้องเบื่"</h4><span class="chue kazuma">#อาซึมะ คาซึมะ</span></a>
</div>
</div>
<p align="center"><a href="https://hinaboshi.com"><<-- รวมคำแปลวลีเด็ดจากญี่ปุ่น -->></a></p>
</body>
<style>#huakho,#qb {text-align:center}
.klongyai {width:800px;; background:#F8E290; margin:50px; padding:20px}
.chue {color: #12B6A6; font-weight:bold}
h4 {font-weight:100}</style>
</html>
import requests
url_naweb = 'https://hinaboshi.com/súpđẹp.html'
r = requests.get(url_naweb)
r.encoding = 'utf-8' # กำหนด encoding กันปัญหาการถอดรหัสผิดแบบ
sup = BeautifulSoup(r.text,'lxml')
pip install lxml
type(sup) # ได้ bs4.BeautifulSoup
print(sup.prettify())
<html>
<head>
<meta charset="utf-8"/>
<title>
~หน้าทดสอบซุปสวย~
</title>
</head>
<body>
<div class="klongyai">
<div id="huakho">
<img src="https://phyblas.hinaboshi.com/rup/thema/qb.png" width="180"/>
<br/>
<h3>
ว่าด้วยเรื่องของอาหย่อย
</h3>
</div>
<br/>
<br/>
<div class="klonglek" id="wali1">
<a href="walidet/946641382021300">
<img src="rup/rupprakopwalidet/946641382021300.jpg"/>
</a>
<h4 class="khokhwam">
"ของอร่อยแบบนี้ไม่ว่าจะฤดูไหนมันก็อร่อยอยู่ดีแหละ"
</h4>
<span class="chue kirin">
#โมริโนะ คิริง
</span>
</div>
<br/>
<br/>
<div id="qb">
/人◕ ‿‿ ◕人\
</div>
<br/>
<br/>
<div class="klonglek" id="wali2">
<a href="walidet/1793364814015615">
<img src="rup/rupprakopwalidet/1793364814015615.jpg"/>
<h4 class="khokhwam">
"ต่อให้เป็นของที่อร่อยแค่ไหนหากกินทุกวันก็ต้องเบื่อ"
</h4>
<span class="chue kazuma">
#อาซึมะ คาซึมะ
</span>
</a>
</div>
</div>
<p align="center">
<a href="https://hinaboshi.com">
<<-- รวมคำแปลวลีเด็ดจากญี่ปุ่น -->>
</a>
</p>
</body>
<style>
#huakho,#qb {text-align:center}
.klongyai {width:800px;; background:#F8E290; margin:50px; padding:20px}
.chue {color: #12B6A6; font-weight:bold}
h4 {font-weight:100}
</style>
</html>
print(sup.find_all('img'))
# ได้ [<img src="https://phyblas.hinaboshi.com/rup/thema/qb.png" width="180"/>, <img src="rup/rupprakopwalidet/946641382021300.jpg"/>, <img src="rup/rupprakopwalidet/1793364814015615.jpg"/>]
print(sup('img'))
print(sup('h4'))
# ได้ [<h4 class="khokhwam">"ของอร่อยแบบนี้ไม่ว่าจะฤดูไหนมันก็อร่อยอยู่ดีแหละ"</h4>, <h4 class="khokhwam">"ต่อให้เป็นของที่อร่อยแค่ไหนหากกินทุกวันก็ต้องเบื่อ"</h4>]
print(sup.find('a'))
# ได้ <a href="walidet/946641382021300"><img src="rup/rupprakopwalidet/946641382021300.jpg"/></a>
print(sup.a)
print(sup.find_all('div')[2].find('h4'))
# หรือ print(sup('div')[2].h4)
# ได้ <h4 class="khokhwam">"ของอร่อยแบบนี้ไม่ว่าจะฤดูไหนมันก็อร่อยอยู่ดีแหละ"</h4>
print(sup.html.body.div.div.h3)
# ได้ <h3>ว่าด้วยเรื่องของอาหย่อย</h3>
print(sup.find(align='center'))
# ได้ <p align="center"><a href="https://hinaboshi.com"><<-- รวมคำแปลวลีเด็ดจากญี่ปุ่น -->></a></p>
print(sup.find(attrs={'align':'center'}))
print(sup.find_all(class_='khokhwam'))
# ได้ [<h4 class="khokhwam">"ของอร่อยแบบนี้ไม่ว่าจะฤดูไหนมันก็อร่อยอยู่ดีแหละ"</h4>, <h4 class="khokhwam">"ต่อให้เป็นของที่อร่อยแค่ไหนหากกินทุกวันก็ต้องเบื่อ"</h4>]
print(sup.find_all(class_='chue'))
# ได้ [<span class="chue kirin">#โมริโนะ คิริง</span>, <span class="chue kazuma">#อาซึมะ คาซึมะ</span>]
print(sup.find('h4',class_='khokhwam'))
# ได้ <h4 class="khokhwam">"ของอร่อยแบบนี้ไม่ว่าจะฤดูไหนมันก็อร่อยอยู่ดีแหละ"</h4>
img1 = sup.find_all('img')[1]
print(img1)
# ได้ <img src="rup/rupprakopwalidet/946641382021300.jpg"/>
print(img1['src'])
# ได้ rup/rupprakopwalidet/946641382021300.jpg
huakho = sup.find(class_='chue')
print(huakho) # ได้ <span class="chue kirin">#โมริโนะ คิริง</span>
print(huakho.name) # ได้ span
print(sup.h4)
# ได้ <h4 class="khokhwam">"ของอร่อยแบบนี้ไม่ว่าจะฤดูไหนมันก็อร่อยอยู่ดีแหละ"</h4>
print(sup.h4.contents)
# ได้ ['"ของอร่อยแบบนี้ไม่ว่าจะฤดูไหนมันก็อร่อยอยู่ดีแหละ"']
print(sup.body.text)
ว่าด้วยเรื่องของอาหย่อย
"ของอร่อยแบบนี้ไม่ว่าจะฤดูไหนมันก็อร่อยอยู่ดีแหละ"
#โมริโนะ คิริง
/人◕ ‿‿ ◕人\
"ต่อให้เป็นของที่อร่อยแค่ไหนหากกินทุกวันก็ต้องเบื่อ"#อาซึมะ คาซึมะ
<<-- รวมคำแปลวลีเด็ดจากญี่ปุ่น --
>>
print(sup.find(id='wali1').children)
# ได้ <list_iterator object at 0x180f38d2e8>
print(list(sup.find(id='wali1').children))
# ได้ ['\n', <a href="walidet/946641382021300"><img src="rup/rupprakopwalidet/946641382021300.jpg"/></a>, '\n', <h4 class="khokhwam">"ของอร่อยแบบนี้ไม่ว่าจะฤดูไหนมันก็อร่อยอยู่ดีแหละ"</h4>, '\n', <span class="chue kirin">#โมริโนะ คิริง</span>, '\n']
print(len(list(sup.body.children))) # ได้ 5
print(len(list(sup.body.descendants))) # ได้ 46
a = sup.find(id='wali2').a
print(a)
for d in a.descendants:
print(d.name)
<a href="walidet/1793364814015615"><img src="rup/rupprakopwalidet/1793364814015615.jpg"/><h4 class="khokhwam">"ต่อให้เป็นของที่อร่อยแค่ไหนหากกินทุกวันก็ต้องเบื่อ"</h4><span class="chue kazuma">#อาซึมะ คาซึมะ</span></a>
img
h4
None
span
None
print(sup.body.parent.name) # ได้ html
print(sup.html.parent.name) # ได้ [document]
print([p.name for p in sup.find(id='wali1').parents])
# ได้ ['div', 'body', 'html', '[document]']
print(sup.find_all(re.compile(r'h\d')))
# ได้ [<h3>ว่าด้วยเรื่องของอาหย่อย</h3>, <h4 class="khokhwam">"ของอร่อยแบบนี้ไม่ว่าจะฤดูไหนมันก็อร่อยอยู่ดีแหละ"</h4>, <h4 class="khokhwam">"ต่อให้เป็นของที่อร่อยแค่ไหนหากกินทุกวันก็ต้องเบื่อ"</h4>]
ww = sup.find_all(id=re.compile(r'w.+'))
print([w['id'] for w in ww]) # ได้ ['wali1', 'wali2']
print(sup.p)
# ได้ <p align="center"><a href="https://hinaboshi.com"><<-- รวมคำแปลวลีเด็ดจากญี่ปุ่น -->></a></p>
sup.p['align'] = 'right'
print(sup.p)
# ได้ <p align="right"><a href="https://hinaboshi.com"><<-- รวมคำแปลวลีเด็ดจากญี่ปุ่น -->></a></p>
del sup.p['align']
print(sup.p)
# ได้ <p><a href="https://hinaboshi.com"><<-- รวมคำแปลวลีเด็ดจากญี่ปุ่น -->></a></p>
print(sup.a)
# ได้ <a href="walidet/946641382021300"><img src="rup/rupprakopwalidet/946641382021300.jpg"/></a>
sup.a['target'] = '_blank'
print(sup.a)
# ได้ <a href="walidet/946641382021300" target="_blank"><img src="rup/rupprakopwalidet/946641382021300.jpg"/></a>
print(sup.p)
# ได้ <p><a href="https://hinaboshi.com"><<-- รวมคำแปลวลีเด็ดจากญี่ปุ่น -->></a></p>
sup.p.a.unwrap()
print(sup.p)
# ได้ <p><<-- รวมคำแปลวลีเด็ดจากญี่ปุ่น -->></p>
sup.p.contents = []
print(sup.p) # ได้ <p></p>
sup.head.contents = []
sup.body.contents = []
sup.style.contents = []
print(sup)
<html>
<head></head>
<body></body>
<style></style>
</html>
url_naweb = 'https://hinaboshi.com/súpđẹp.html'
r = requests.get(url_naweb)
r.encoding = 'utf-8'
sup = BeautifulSoup(r.text,'lxml')
for klong in sup(class_='klonglek'):
src = klong.img['src']
chue_file = src.split('/')[-1]
url_file = 'https://hinaboshi.com/'+src
with open(chue_file,'wb') as f:
f.write(requests.get(url_file).content)
ติดตามอัปเดตของบล็อกได้ที่แฟนเพจ