파 이 썬 파충류 실전 (3) - 콩짜개 오 르 기 음악 Top 250 데이터 (초 상세)

3970 단어 Python 튜 토리 얼
머리말
우선 지난 두 편의 파충류 실전 글 을 떠 올 려 보 자.
첫 번 째 편: requests 와 bs4, 그리고 일부 웹 페이지 의 기본 동작 에 대해 이야기 했다.
파 이 썬 파충류 실전 (1) - '집 천하' 전세 정보 얻 기 (초 상세)
정규 표현 식 - re 모듈 사용
파 이 썬 파충류 실전 (2) - 소설 '두 라 대륙 3 용왕 전설' (초 상세)
오늘 우 리 는 lxml 라 이브 러 리 와 xpath 문법 으로 파충류 실전 을 한다.
1. lxml 라 이브 러 리 설치
window: 직접 pip 로 설치 합 니 다. pip 의 설치 경 로 를 찾 아야 합 니 다.
pip install lxml

* * 2. * * xpath 문법
xpath 문법 은 아 닙 니 다. 아래 주 소 를 참고 하 십시오.
http://www.w3school.com.cn/xpath/index.asp
파충류 실전
우선 상단 효과 도:
오늘 은 '콩짜개 음악 TOP 250 데이터' 를 한번 올 려 보도 록 하 겠 습 니 다.
1. 웹 페이지 전환 규칙 관찰
https://music.douban.com/top250?start=0
https://music.douban.com/top250?start=25
https://music.douban.com/top250?start=50
그 중에서 우 리 는 이미 규칙 을 발견 했다.
2. 콩짜개 음악의 제목, 정보, 성 평 파충류 의 전체 코드 는 다음 과 같다.

import  requests
from  lxml import  etree

headers = {
   'User-Agent''Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.186 Safari/537.36'}

list=[1]

def getResult():
   urls=["https://music.douban.com/top250?start={}".format(str(i)) for i in  range(0,250,25)]
   for url in  urls:
       data = requests.get(url, headers=headers)
       html = etree.HTML(data.text)
       #    
       count = html.xpath("//tr[@class='item']")
       for info in count:
           title = info.xpath("normalize-space(td[2]/div/a/text())")#  
           list[0]=title #  title normalize-space     ,   result       ,     list   
           star = info.xpath("td[2]/div/div/span[2]/text()")  #   
           brief_introduction = info.xpath("td[2]/div/p//text()"#  
           #  result 
           for star, title, brief_introduction in zip(star, list, brief_introduction):
               result = {
                   "title": title,
                   "star": star,
                   "brief_introduction": brief_introduction,

               }
               print(result)

if __name__ == '__main__':
   getResult()

분석:
  • 코드 에서 url 은 모든 url
  • 을 순환 하기 위해 서 입 니 다.
  • xpath 에 대해 모 르 는 것 은 구체 적 인 언어 를 보 러 가도 되 고 간단명료 하 며 사용 하기에 매우 편리 하 다
  • normalize - space 는 선도 와 꼬리 공백 을 제거 하고 하나의 빈 칸 으로 일련의 공백 문 자 를 교체 하여 공백 을 표준화 하 는 것 을 나타 낸다.이 매개 변 수 를 생략 하면 컨 텍스트 노드 의 문자열 값 이 표준화 되 고 되 돌아 갑 니 다
  • 기본적으로 이런 어 려 운 점 들 입 니 다. 여러분 이 못 하 는 것 이 있 으 면 저 에 게 직접 물 어 보 셔 도 됩 니 다. 그리고 여러분 도 다른 데 이 터 를 가지 고 올 라 가서 많이 두 드 리 고 연습 하 셔 도 됩 니 다!
    막 입문 한 친구 에 게 도움 이 되 었 으 면 좋 겠 습 니 다!
    여러분 이 저의 두 개의 위 챗 공식 번 호 를 주목 해 주신 것 을 환영 합 니 다.

    좋은 웹페이지 즐겨찾기