python(0821-0908)/메모

urlopen 과 requests.get : 벅스 순위

나도초딩 2022. 8. 27.

개기초

urllib.reqeust 의 urlopen 사용
url2 = urlopen(URL)
url3 = url2.read()
requests 사용
url2 = requests.get(URL)
url3 = url2.text
from urllib.request import urlopen
from bs4 import BeautifulSoup

url2 = urlopen(url)
url3 = url2.read()
print(url2)
print(len(url3))
import requests
from bs4 import BeautifulSoup

url ="https://music.bugs.co.kr/chart?wl_ref=M_left_02_01%22"
url2 = requests.get(url)
url3 = url2.text
print(url2)
print(len(url3))
<td> 의 id 로 찾은 후, 자식태그 input의 속성값 출력-->
input['title']
<p> 와 <class> 지정해서 찾은 후, 자식 a 의 get_text() 로 출력
musics = soup.find_all('td', "check")
for i, music in enumerate(musics):
    print("{}위: {}".format(i+1, music.input['title']))
items = soup.find_all("p", {"class":"title"})
for i,item in enumerate(items):
    title = item.a.get_text()
    print("{}위: {}".format(i+1, title))

예제 : urllib.request.urloopen(URL) , url.read(), input의 속성 중, ['title'] 로 출력

<td class="check"><input type="checkbox" value="6173112" name="check" disc_id="1" title="After LIKE" buyminquality="T"></td>
from urllib.request import urlopen
from bs4 import BeautifulSoup


url = urlopen("https://music.bugs.co.kr/chart?wl_ref=M_left_02_01")
soup = BeautifulSoup(url.read(), 'html.parser')

musics = soup.find_all('td', "check")
for i, music in enumerate(musics):
    print("{}위: {}".format(i+1, music.input['title']))

예제2 : request.get(URL), url.text, a 태그의 get_text() 로 출력

 

<p class="title" adult_yn="N">
<a href="javascript:;" adultcheckval="1" onclick="bugs.wiselog.area('list_tr_09_chart');bugs.music.listen('6173112',true);
" title="After LIKE" aria-label="새창">After LIKE</a>
</p>

import requests
from bs4 import BeautifulSoup

url2 = requests.get(url)
url3 = url2.text
print(url2) 
print(len(url3))
# urllib.reques 로 가져온 텍스트와 약간의 차이가 있음. header 부분으로 추정

soup = BeautifulSoup(url3, "html.parser")
# soup = BeautifulSoup(url3, "lxml")


items = soup.find_all("p", {"class":"title"})
for i,item in enumerate(items):
    title = item.a.get_text()
    print("{}위: {}".format(i+1, title))

# print(items.get_text())
# print(soup)

댓글