단오절 이 다가 오 는데 파 이 썬 으로 쫑 쯔 데 이 터 를 추출 하고 시각 화 를 해서 네티즌 들 이 어떤 종 자 를 좋아 하 는 지 보 세 요!

머리말
본 고 는 데이터 추출,데이터 세척,데이터 시각 화 등 세 가지 측면 에서 출발 하지만 작은 데이터 분석 프로젝트 를 간단하게 완성 하여 지식 을 종합 적 으로 활용 할 수 있 도록 한다.
전체 사고방식 은 다음 과 같다.
  • 페이지 를 찾 습 니 다:https://www.jd.com/
  • 기어 오 르 기 설명: 경 동 사 이 트 를 바탕 으로 우 리 는 사이트'쫑 쯔'데 이 터 를 검색 하 는데 약 100 페이지 가 있다.우리 가 기어 오 르 는 필드 는 1 급 페이지 의 관련 정보 도 있 고 2 급 페이지 의 일부 정보 도 있다.
  • 기어 오 르 는 사고방식: 먼저 특정한 페이지 데이터 의 1 급 페이지 를 분석 한 다음 에 2 급 페이지 를 분석 한 다음 에 페이지 를 넘 기 는 작업 을 한다.
  • 기어 오 르 기 필드: 각각 쫑 쯔 의 이름(제목),가격,브랜드(가게),유형(맛)이다.
  • 사용 도구: requests+lxml+pandas+time+re+pyecharts
  • 사이트 분석 방식: xpath
  • 최종 효 과 는 다음 과 같다.
    Image
    2.데이터 추출
    경 동 사 이 트 는 보통 동적 으로 불 러 옵 니 다.즉,일반적인 방식 으로 한 페이지 의 앞 30 개 데이터(한 페이지 에 모두 60 개의 데이터)만 얻 을 수 있 습 니 다.
    본 고 를 바탕 으로 저 는 가장 기본 적 인 방법 으로 각 페이지 의 30 개의 데 이 터 를 얻 었 습 니 다(여러분 이 관심 이 있 으 면 스스로 내 려 가서 모든 데 이 터 를 얻 을 수 있 습 니 다).
    그렇다면 본문 은 도대체 어떤 필드 를 기어 올 랐 을 까?제 가 여러분 께 보 여 드 리 겠 습 니 다.여러분 이 관심 이 있 으 면 더 많은 필드 를 올 라 가서 더 상세 한 분석 을 할 수 있 습 니 다.
    Image
    다음은 파충류 코드 를 보 여 드 리 겠 습 니 다.
    
    import pandas as pd
    import requests
    from lxml import etree
    import chardet
    import time
    import re
     
    def get_CI(url):
        headers = {'User-Agent':'Mozilla/5.0 (Windows NT 6.1; Win64; X64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.80 Safari/537.36'}
        rqg = requests.get(url,headers=headers)
        rqg.encoding = chardet.detect(rqg.content)['encoding']
        html = etree.HTML(rqg.text)
        
        #   
        p_price = html.xpath('//div/div[@class="p-price"]/strong/i/text()')
        
        #   
        p_name = html.xpath('//div/div[@class="p-name p-name-type-2"]/a/em')
        p_name = [str(p_name[i].xpath('string(.)')) for i in range(len(p_name))]
        
        #   url
        deep_ur1 = html.xpath('//div/div[@class="p-name p-name-type-2"]/a/@href')
        deep_url = ["http:" + i for i in deep_ur1]
        
        #      ,    “    ”              
        brands_list = []
        kinds_list = []
        for i in deep_url:
            rqg = requests.get(i,headers=headers)
            rqg.encoding = chardet.detect(rqg.content)['encoding']
            html = etree.HTML(rqg.text)
                              
            #   
            brands = html.xpath('//div/div[@class="ETab"]//ul[@id="parameter-brand"]/li/@title')
            brands_list.append(brands)
                            
            #   
            kinds = re.findall('>  :(.*?)</li>',rqg.text)
            kinds_list.append(kinds)
                               
        data = pd.DataFrame({'  ':p_name,'  ':p_price,'  ':brands_list,'  ':kinds_list})
        return(data)
                               
    x = "https://search.jd.com/Search?keyword=%E7%B2%BD%E5%AD%90&qrst=1&wq=%E7%B2%BD%E5%AD%90&stock=1&page="
    url_list = [x + str(i) for i in range(1,200,2)]
    res = pd.DataFrame(columns=['  ','  ','  ','  '])
     
    #     “  ”  
    for url in url_list:
        res0 = get_CI(url)
        res = pd.concat([res,res0])
        time.sleep(3)
     
    #     
    res.to_csv('aliang.csv',encoding='utf_8_sig')
    
    최종 기어 오 른 데이터:
    Image
    3.데이터 세척
    위의 그림 에서 볼 수 있 듯 이 전체 데 이 터 는 매우 가지런 한 편 이지 특별히 복잡 한 것 이 아니 라 우 리 는 간단 한 조작 만 하면 된다.
    먼저 pandas 라 이브 러 리 를 사용 하여 데 이 터 를 읽 습 니 다.
    
    import pandas as pd
     
    df = pd.read_excel("  .xlsx",index_col=False)
    df.head()
    결 과 는 다음 과 같다.
    Image
    우 리 는 각각 겨냥 했다. “브랜드 두 필드 에서 괄호 를 제거 합 니 다.
    
    df["  "] = df["  "].apply(lambda x: x[1:-1])
    df["  "] = df["  "].apply(lambda x: x[1:-1])
    df.head()
    결 과 는 다음 과 같다.
    Image
    ①  쫑 쯔 브랜드 상위 10 개 점포
    
    df["  "].value_counts()[:10]
    결 과 는 다음 과 같다.
    Image
    ② 쫑 쯔 맛 상위 5 개 맛
    
    def func1(x):
        if x.find(" ") > 0:
            return "   "
        else:
            return x
    df["  "] = df["  "].apply(func1)
    df["  "].value_counts()[1:6]
    
    결 과 는 다음 과 같다.
    Image
    ③ 종자 판매 가격 구간 구분
    
    def price_range(x): #         ,    
        if x <= 50:
            return '<50 '
        elif x <= 100:
            return '50-100 '
        elif x <= 300:
            return '100-300 '
        elif x <= 500:
            return '300-500 '
        elif x <= 1000:
            return '500-1000 '
        else:
            return '>1000 '
     
    df["    "] = df["  "].apply(price_range)
    df["    "].value_counts()
    
    결 과 는 다음 과 같다.
    Image
    데이터 가 많 지 않 기 때문에 필드 가 많 지 않 고 어 지 러 운 데이터 도 많 지 않다.따라서 데이터 의 무 게 를 줄 이 고 부족 한 값 을 채 우 는 작업 도 하지 않 았 다.그래서 여러분 은 내 려 가서 더 많은 필드,더 많은 데 이 터 를 얻어 데이터 분석 에 사용 할 수 있 습 니 다.
    4.데이터 시각 화
    속담 에 이 르 기 를 글 자 는 시계 보다 못 하고,시 계 는 그림 보다 못 하 다 고 한다.시각 화 분석 을 통 해 우 리 는 데이터 의 배후 를 “숨기다 라 는 메 시 지 를 보 여 줬 다.
    확장: 물론 “"벽돌 을 던 져 옥 을 끌 어 들 였 습 니 다."저 는 데 이 터 를 많이 얻 지 못 했 고 필드 도 많이 얻 지 못 했 습 니 다.여기 서 공부 하 는 친구 에 게 숙제 문 제 를 주 고 더 많은 데이터,더 많은 필드 로 더욱 투철 한 분석 을 한다.
    여기 서 우 리 는 다음 과 같은 몇 가지 문 제 를 바탕 으로 시각 화 된 전 시 를 한다.각각:
  • ① 쫑 쯔 판매 점 톱 10 기둥 그림;
  • ② 쫑 쯔 맛 순위 Top 5 기둥 그림;
  • ③ 종자 판매 가격 구간 구분 떡 그림;
  • ④ 종자 상품 명칭 단어 구름 그림;
  • ① 쫑 쯔 판매 점 톱 10 기둥 그림
    Image
    결론 분석:작년 에 우 리 는 월병 의 데 이 터 를 분석 했다.'오방 재','베 이 징 벼 향 촌' 이 몇 개의 브랜드 는 기억 이 새 로 워 월병,종 자 를 만 드 는 오래된 가게 라 고 할 수 있다.닮다 “삼 전 화해시키다 “"그리워 요."제 기억 에는 만두 와 경단 만 만 드 는 줄 알 았 는데 종 자 는 해 볼 만 한 가치 가 있 나 요?물론 여기 새로운 브랜드 도 있 습 니 다. “제 맏형 몇몇 브랜드 를 기다 리 면 모두 내 려 가서 검색 해 볼 수 있다.물건 을 살 때 는 꼼꼼 하 게 골 라 야 하고,브랜드 도 중요 하 다.
    ② 쫑 쯔 맛 순위 Top 5 기둥 그림
    Image
    결론 분석:어 렸 을 때 가장 많이 먹 었 던 것 은 “"단 종 자 는 중학교 에 들 어가 서 야 알 게 되 었 습 니 다.종 자 는 고기 도 있 습 니까?"물론 그림 에서 볼 수 있 듯 이 팔 아 요. “"신선 한 고기 쫑" 가 게 는 여전히 많다.왜냐하면 이것 은 사람 을 보 내 는 것 이기 때문에 고 급 스 럽 고 대범 해 보인다.여기 맛 도 있어 요. “대추 종자,콩 종자,나 는 거의 먹 어 본 적 이 없다.만약 당신 이 사람 을 배웅 한다 면,당신 은 어떤 맛 을 보 낼 것 입 니까?
    ③ 쫑 쯔 판매 가격 구간 구분 떡 그림
    Image
    결론 분석:여기,나 는 고의로 가격 구간 을 세분 화 했다.이 떡 그림 도 실제 에 부합된다.왜냐하면 매년 단오절 이 한 번 지나 기 때문에 박리 다 판 을 위주 로 하고 80%에 가 까 운 종 자 를 판매 하 며 가격 은 모두 100 위안 이하 이다.물론 중급 종자 도 있 습 니 다.가격 은 100-300 원 입 니 다.300 위안 이상 이면 먹 을 필요 도 없다 고 생각 합 니 다.어쨌든 저 는 이렇게 많은 돈 을 써 서 종 자 를 사지 않 을 것 입 니 다.
    ④ 쫑 쯔 상품 명 단어 구름 그림
    Image
    결론 분석:그림 에서 상가 의 판매 점 을 대체적으로 볼 수 있다.명절 이 니까'선물 하기','선물 하기'. 명절 분 위 기 를 살 렸 다.'돼지고기 쫑 쯔 의 맛 을 살 렸 다.물론 “아침 식사 좋 은 선택 은 요?구 매 하면 지원 “공동 구 매 어?이 단어 들 은 많 든 적 든 각자 일부 사람들의 눈길 을 끈 다.
    ⑤ 도형 을 큰 화면 으로 조합
    Image
    단오절 이 다가 오 는데 파 이 썬 으로 종 자 를 시각 화하 여 네티즌 들 이 어떤 것 을 좋아 하 는 지 보 세 요!의 글 은 여기까지 소개 되 었 습 니 다.더 많은 관련 Python 데이터 시각 화 내용 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 조회 하 시기 바 랍 니 다.앞으로 많은 응원 바 랍 니 다!

    좋은 웹페이지 즐겨찾기