영화인기 영화
저번엔 @hcpmiyuki 선배님 [GCP] [Python] Google Cloud Functions에 서버 배포 API 없음!!
요즘은 잘 안 나가니까 전염병이 끝나면 맛있는 밥을 먹으러 가고 싶어요.
잘 부탁드립니다.
목표
영화com의 홈페이지에서 현재 인기 있는 영화의 제목과 공개일을 몇 줄의 코드로 묘사한다.
방법
웹 스캔에는 여러 가지 방법이 있지만, 이번에는 매우 간단하게 XPath와 CSS 선택기를 이용한 방법으로 한다.
처음 스크랩하시는 분들은 이 방법으로 한번 해보세요!그것은 폭발속도로 완성할 수 있다
준비
설치 라이브러리.
Requests, lxml, cssselect 세 가지를 사용합니다.$ pip install requests
$ pip install lxml
$ pip install cssselect
CSS 선택기 및 Xpath 확인 방법
Chrome의 개발자 도구를 사용합니다.
요소 > 복사 > 복사 선택기를 마우스 오른쪽 버튼으로 클릭합니다.
에서 설명한 대로 해당 매개변수의 값을 수정합니다.
실제 코드 작성
코드는 이것밖에 없어요.적고 예뻐!함수를 쓰면 더 좋아요.
scray.py
import requests
import lxml.html
#映画.comのURLを指定して、HTMLソースを得る
r = requests.get("https://eiga.com/ranking/")
html = r.text
#HTMLをHtmlElementオブジェクトにする
root = lxml.html.fromstring(html)
print("映画ランキング第1位")
#Xpathを指定して、映画タイトルをスクレイピング
rank1_title = root.xpath("//*[@id='document_2575126293']/main/div/div/section[1]/table/tbody/tr[1]/td[2]/div/h2/a")
print(rank1_title[0].text)
#CSSセレクターで指定して、公開日をスクレイピング
rank1_day = root.cssselect("#document_2575126293 > main > div > div > section:nth-child(4) > table > tbody > tr:nth-child(1) > td.img > small")
print(rank1_day[0].text)
#2位, 3位も同様にコードを書きます
print('----------------------------')
print("映画ランキング第2位")
rank2_title = root.xpath("//*[@id='document_2575126293']/main/div/div/section[1]/table/tbody/tr[2]/td[2]/div/h2/a")
print(rank2_title[0].text)
rank2_day = root.cssselect("#document_2575126293 > main > div > div > section:nth-child(4) > table > tbody > tr:nth-child(2) > td.img > small")
print(rank2_day[0].text)
print('----------------------------')
print("映画ランキング第3位")
rank3_title = root.xpath("//*[@id='document_2575126293']/main/div/div/section[1]/table/tbody/tr[3]/td[2]/div/h2/a")
print(rank3_title[0].text)
rank3_day = root.cssselect("#document_2575126293 > main > div > div > section:nth-child(4) > table > tbody > tr:nth-child(3) > td.img > small")
print(rank3_day[0].text)
결과
실행 시映画ランキング第1位
劇場版「鬼滅の刃」無限列車編
劇場公開日:2020年10月16日
----------------------------
映画ランキング第2位
新解釈・三國志
劇場公開日:2020年12月11日
----------------------------
映画ランキング第3位
天外者(てんがらもん)
劇場公開日:2020年12月11日
잘 찾았어!
끝내다
읽어주셔서 감사합니다.
잘못된 점이 있다면 지적해 주시기 바랍니다!
참고 문헌
웹 스캔에는 여러 가지 방법이 있지만, 이번에는 매우 간단하게 XPath와 CSS 선택기를 이용한 방법으로 한다.
처음 스크랩하시는 분들은 이 방법으로 한번 해보세요!그것은 폭발속도로 완성할 수 있다
준비
설치 라이브러리.
Requests, lxml, cssselect 세 가지를 사용합니다.$ pip install requests
$ pip install lxml
$ pip install cssselect
CSS 선택기 및 Xpath 확인 방법
Chrome의 개발자 도구를 사용합니다.
요소 > 복사 > 복사 선택기를 마우스 오른쪽 버튼으로 클릭합니다.
에서 설명한 대로 해당 매개변수의 값을 수정합니다.
실제 코드 작성
코드는 이것밖에 없어요.적고 예뻐!함수를 쓰면 더 좋아요.
scray.py
import requests
import lxml.html
#映画.comのURLを指定して、HTMLソースを得る
r = requests.get("https://eiga.com/ranking/")
html = r.text
#HTMLをHtmlElementオブジェクトにする
root = lxml.html.fromstring(html)
print("映画ランキング第1位")
#Xpathを指定して、映画タイトルをスクレイピング
rank1_title = root.xpath("//*[@id='document_2575126293']/main/div/div/section[1]/table/tbody/tr[1]/td[2]/div/h2/a")
print(rank1_title[0].text)
#CSSセレクターで指定して、公開日をスクレイピング
rank1_day = root.cssselect("#document_2575126293 > main > div > div > section:nth-child(4) > table > tbody > tr:nth-child(1) > td.img > small")
print(rank1_day[0].text)
#2位, 3位も同様にコードを書きます
print('----------------------------')
print("映画ランキング第2位")
rank2_title = root.xpath("//*[@id='document_2575126293']/main/div/div/section[1]/table/tbody/tr[2]/td[2]/div/h2/a")
print(rank2_title[0].text)
rank2_day = root.cssselect("#document_2575126293 > main > div > div > section:nth-child(4) > table > tbody > tr:nth-child(2) > td.img > small")
print(rank2_day[0].text)
print('----------------------------')
print("映画ランキング第3位")
rank3_title = root.xpath("//*[@id='document_2575126293']/main/div/div/section[1]/table/tbody/tr[3]/td[2]/div/h2/a")
print(rank3_title[0].text)
rank3_day = root.cssselect("#document_2575126293 > main > div > div > section:nth-child(4) > table > tbody > tr:nth-child(3) > td.img > small")
print(rank3_day[0].text)
결과
실행 시映画ランキング第1位
劇場版「鬼滅の刃」無限列車編
劇場公開日:2020年10月16日
----------------------------
映画ランキング第2位
新解釈・三國志
劇場公開日:2020年12月11日
----------------------------
映画ランキング第3位
天外者(てんがらもん)
劇場公開日:2020年12月11日
잘 찾았어!
끝내다
읽어주셔서 감사합니다.
잘못된 점이 있다면 지적해 주시기 바랍니다!
참고 문헌
$ pip install requests
$ pip install lxml
$ pip install cssselect
Chrome의 개발자 도구를 사용합니다.
요소 > 복사 > 복사 선택기를 마우스 오른쪽 버튼으로 클릭합니다.
에서 설명한 대로 해당 매개변수의 값을 수정합니다.
실제 코드 작성
코드는 이것밖에 없어요.적고 예뻐!함수를 쓰면 더 좋아요.
scray.py
import requests
import lxml.html
#映画.comのURLを指定して、HTMLソースを得る
r = requests.get("https://eiga.com/ranking/")
html = r.text
#HTMLをHtmlElementオブジェクトにする
root = lxml.html.fromstring(html)
print("映画ランキング第1位")
#Xpathを指定して、映画タイトルをスクレイピング
rank1_title = root.xpath("//*[@id='document_2575126293']/main/div/div/section[1]/table/tbody/tr[1]/td[2]/div/h2/a")
print(rank1_title[0].text)
#CSSセレクターで指定して、公開日をスクレイピング
rank1_day = root.cssselect("#document_2575126293 > main > div > div > section:nth-child(4) > table > tbody > tr:nth-child(1) > td.img > small")
print(rank1_day[0].text)
#2位, 3位も同様にコードを書きます
print('----------------------------')
print("映画ランキング第2位")
rank2_title = root.xpath("//*[@id='document_2575126293']/main/div/div/section[1]/table/tbody/tr[2]/td[2]/div/h2/a")
print(rank2_title[0].text)
rank2_day = root.cssselect("#document_2575126293 > main > div > div > section:nth-child(4) > table > tbody > tr:nth-child(2) > td.img > small")
print(rank2_day[0].text)
print('----------------------------')
print("映画ランキング第3位")
rank3_title = root.xpath("//*[@id='document_2575126293']/main/div/div/section[1]/table/tbody/tr[3]/td[2]/div/h2/a")
print(rank3_title[0].text)
rank3_day = root.cssselect("#document_2575126293 > main > div > div > section:nth-child(4) > table > tbody > tr:nth-child(3) > td.img > small")
print(rank3_day[0].text)
결과
실행 시映画ランキング第1位
劇場版「鬼滅の刃」無限列車編
劇場公開日:2020年10月16日
----------------------------
映画ランキング第2位
新解釈・三國志
劇場公開日:2020年12月11日
----------------------------
映画ランキング第3位
天外者(てんがらもん)
劇場公開日:2020年12月11日
잘 찾았어!
끝내다
읽어주셔서 감사합니다.
잘못된 점이 있다면 지적해 주시기 바랍니다!
참고 문헌
import requests
import lxml.html
#映画.comのURLを指定して、HTMLソースを得る
r = requests.get("https://eiga.com/ranking/")
html = r.text
#HTMLをHtmlElementオブジェクトにする
root = lxml.html.fromstring(html)
print("映画ランキング第1位")
#Xpathを指定して、映画タイトルをスクレイピング
rank1_title = root.xpath("//*[@id='document_2575126293']/main/div/div/section[1]/table/tbody/tr[1]/td[2]/div/h2/a")
print(rank1_title[0].text)
#CSSセレクターで指定して、公開日をスクレイピング
rank1_day = root.cssselect("#document_2575126293 > main > div > div > section:nth-child(4) > table > tbody > tr:nth-child(1) > td.img > small")
print(rank1_day[0].text)
#2位, 3位も同様にコードを書きます
print('----------------------------')
print("映画ランキング第2位")
rank2_title = root.xpath("//*[@id='document_2575126293']/main/div/div/section[1]/table/tbody/tr[2]/td[2]/div/h2/a")
print(rank2_title[0].text)
rank2_day = root.cssselect("#document_2575126293 > main > div > div > section:nth-child(4) > table > tbody > tr:nth-child(2) > td.img > small")
print(rank2_day[0].text)
print('----------------------------')
print("映画ランキング第3位")
rank3_title = root.xpath("//*[@id='document_2575126293']/main/div/div/section[1]/table/tbody/tr[3]/td[2]/div/h2/a")
print(rank3_title[0].text)
rank3_day = root.cssselect("#document_2575126293 > main > div > div > section:nth-child(4) > table > tbody > tr:nth-child(3) > td.img > small")
print(rank3_day[0].text)
실행 시
映画ランキング第1位
劇場版「鬼滅の刃」無限列車編
劇場公開日:2020年10月16日
----------------------------
映画ランキング第2位
新解釈・三國志
劇場公開日:2020年12月11日
----------------------------
映画ランキング第3位
天外者(てんがらもん)
劇場公開日:2020年12月11日
잘 찾았어!끝내다
읽어주셔서 감사합니다.
잘못된 점이 있다면 지적해 주시기 바랍니다!
참고 문헌
Reference
이 문제에 관하여(영화인기 영화), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/marusann/items/dcc67da424056a39d957텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)