0317

12918 ワード

セレクタとして直接抽出することもできますが、find allを使用して規則性を検索してアクセスすることもできます.
import urllib.request as req
from bs4 import BeautifulSoup

url = "https://www.naver.com/"
# html = req.urlopen(url)     #페이지 저장 객체
html = req.urlopen(url).read().decode("utf-8")  #페이지 문자열

bs = BeautifulSoup(html, 'html.parser')

# 범위를 줄여가면서 찾는 방법
# div 태그이면서 클래스 속성이 ~ 인 것을 찾아라
# find(태그, {속성명:값})
div = bs.find("div", {"class":"service_area"})
a = div.find("a")
print(a.text)



import urllib.request as req
from bs4 import BeautifulSoup

url = "https://www.naver.com/"
# html = req.urlopen(url)                         # 페이지 저장 객체
html = req.urlopen(url).read().decode("utf-8")    # 페이지 문자열

bs = BeautifulSoup(html, 'html.parser')

div0 = bs.find("div", {"class":"group_nav"})
lis = div0.find_all("li", {"class":"nav_item"})
for li in lis:
    a = li.find("a")
    print(a.text)



div0 = bs.find("div", {"class":"group_nav"})
lis = div0.find_all("li", {"class":"nav_item"})
for li in lis:
    a = li.find("a")
    print(a.text, end=",")

NAVERブラウザでアクセスしたように.
import requests
from bs4 import BeautifulSoup

url = "https://news.naver.com/"
# 스크레이핑 App이 아닌 브라우저로 접근하는 것처럼 해주는 헤더설정
headers = { "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36" }
html = requests.get(url, headers=headers).text

bs = BeautifulSoup(html, 'html.parser')

headline = bs.find("ul", {"class":"hdline_article_list"})
print(headline)


import requests
from bs4 import BeautifulSoup

url = "https://news.naver.com/"
# 스크레이핑 App이 아닌 브라우저로 접근하는 것처럼 해주는 헤더설정
headers = { "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36" }
html = requests.get(url, headers=headers).text

bs = BeautifulSoup(html, 'html.parser')

headline = bs.find("ul", {"class":"hdline_article_list"})
a_news = headline.find_all("a", {"class":"lnk_hdline_article"})
for a in a_news:
    print(a.text.strip())

etc_uls = bs.find_all("ul", {"class":"mlist2 no_bg"})
for ul in etc_uls:
    news = ul.find_all("strong")
    for n in news:
        print("news: ", n.text)