Python 파충류 프로 세 스 분석 다 중 스 레 드 에서 샤 오미 응용 상점 데 이 터 를 가 져 옵 니 다.

본 논문 의 문자 와 사진 은 인터넷 에서 기원 되 고 학습,교류 에 만 사용 할 수 있 으 며 어떠한 상업 적 용도 도 가지 지 않 습 니 다.만약 에 문제 가 있 으 면 저희 에 게 연락 하여 처리 하 십시오.
다음 글 은 IT 공유 의 집,저자 IT 공유 자 에서 유래 했다.
머리말
샤 오미 앱 스토어 는 사용자 에 게 가장 좋 은 안 드 로 이 드 앱 과 게임 을 발견 하고 안전 하고 믿 을 수 있 지만 물건 을 다운로드 하려 면 하나씩 검색 하 는 것 이 너무 번거롭다.그리고 속도 가 별로 안 빨 라 요.
오늘 은 다 중 스 레 드 로 좁쌀 응용 상점 의 게임 모듈 을 기어 올 랐 다.빠르게 가 져 오기.

2.프로젝트 목표
목표:응용 분류-채 팅 소 셜 애플 리 케 이 션 이름,응용 링크,콘 솔 에 표시 하여 사용자 가 다운로드 할 수 있 도록 합 니 다.
3.관련 된 라 이브 러 리 와 사이트
1.인터넷 주소:바 이 두 검색-샤 오미 앱 스토어,홈 페이지 에 접속.
2.관련 된 라 이브 러 리:requests,threading,queue,json,time
3.소프트웨어:PyCharm
프로젝트 분석
1.동적 로 딩 여 부 를 확인 합 니 다.
페이지 부분 새로 고침 을 통 해 오른쪽 단 추 를 누 르 면 웹 소스 코드 를 볼 수 있 습 니 다.검색 키 워드 를 찾 을 수 없습니다.이 사 이 트 를 동적 로 딩 사이트 로 단정 하려 면 네트워크 패 킷 분석 이 필요 합 니 다.
2.chrome 브 라 우 저 를 사용 하고 F12 는 네트워크 패 킷 을 캡 처 합 니 다.
1)json 데 이 터 를 되 돌려 주 는 URL 주소(Headers 의 Request URL)를 캡 처 합 니 다.
http://app.mi.com/categotyAllListApi?page={}&categoryId=2&pageSize=30
2)조회 파라미터(headers 의 Query String Parameters)를 보고 분석 합 니 다.

page: 1
categoryId: 2
pageSize: 30
page 만 다시 바 뀌 고 0,1,2,3........................................................................
5.프로젝트 실시
1.우 리 는 class 클래스 계승 object 를 정의 한 다음 init 방법 으로 self 를 계승 하고 주 함수 main 계승 self 를 정의 합 니 다.라 이브 러 리,url 주소,요청 헤더 가 져 올 준 비 를 합 니 다.

import requests
from threading import Thread
from queue import Queue
import json
import time
class XiaomiSpider(object):
def __init__(self):
   self.headers = {'User-Agent':'Mozilla/5.0'}
   self.url = 'http://app.mi.com/categotyAllListApi?page={}&categoryId=15&pageSize=30'
def main(self):
pass
if __name__ == '__main__':
  imageSpider = XiaomiSpider()
  imageSpider.main()
2.URL 주 소 를 저장 할 대기 열 을 정의 합 니 다.

self.url_queue = Queue()
3.URL 입력 대기 열

def url_in(self):
#     URL  ,  put()    
for i in range(67):
self.url.format((str(i)))
self.url_queue.put(self.url)
4.스 레 드 이벤트 함수 get 정의page(요청 데이터)

defget_page(self):
#  get()URL  ,   
while True:
#        ,  url  
if not self.url_queue.empty():
      url = self.url_queue.get()
      html = requests.get(url,headers=self.headers).text
self.parse_page(html)
else:
break
5、정의 함수 parsepage 는 json 모듈 을 분석 하고 응용 이름 을 추출 하 며 링크 내용 을 응용 합 니 다.

#     
def parse_page(self,html):
  app_json = json.loads(html)
for app in app_json['data']:
#     
    name = app['displayName']
#     
    link = 'http://app.mi.com/details?id={}'.format(app['packageName'])
    d = { '  ' : name,'  ' : link }
    print(d)
6.main 방법,정의 tlist=[]모든 스 레 드 를 저장 하 는 목록 입 니 다.get 호출page 다 중 스 레 드 기어 오 르 기.

def main(self):
self.url_in()
#          
  t_list = []
for i in range(10): 
    t = Thread(target=self.get_page)
    t.start() 
    t_list.append(t)
7.for 순환 목록 을 옮 겨 다 니 며 스 레 드 를 통일 적 으로 회수 합 니 다.

#       for p in t_list:   p.join()
8.집행 시간 을 집계 합 니 다.

start = time.time()
spider = XiaomiSpider()
spider.main()
end = time.time()
print('    :%.2f' % (end-start))
6.효과 전시
1.프로그램 을 실행 합 니 다.실행 을 누 르 면 게임 이름,다운로드 링크,실행 시간 을 콘 솔 에 표시 합 니 다.

2.파란색 인터넷 주 소 를 클릭 하면 바로 다운로드 페이지 에 가서 응용 프로그램 을 다운로드 할 수 있 습 니 다.아래 그림 과 같 습 니 다.

파 이 썬 파충류 과정 을 분석 하 는 다 중 스 레 드 에서 샤 오미 애플 리 케 이 션 데 이 터 를 얻 는 것 에 관 한 이 글 은 여기까지 소개 되 었 습 니 다.더 많은 파 이 썬 다 중 스 레 드 에서 샤 오미 애플 리 케 이 션 데 이 터 를 얻 는 내용 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 조회 하 시기 바 랍 니 다.앞으로 많은 지원 바 랍 니 다!

좋은 웹페이지 즐겨찾기