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.파란색 인터넷 주 소 를 클릭 하면 바로 다운로드 페이지 에 가서 응용 프로그램 을 다운로드 할 수 있 습 니 다.아래 그림 과 같 습 니 다.
파 이 썬 파충류 과정 을 분석 하 는 다 중 스 레 드 에서 샤 오미 애플 리 케 이 션 데 이 터 를 얻 는 것 에 관 한 이 글 은 여기까지 소개 되 었 습 니 다.더 많은 파 이 썬 다 중 스 레 드 에서 샤 오미 애플 리 케 이 션 데 이 터 를 얻 는 내용 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 조회 하 시기 바 랍 니 다.앞으로 많은 지원 바 랍 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Python의 None과 NULL의 차이점 상세 정보그래서 대상 = 속성 + 방법 (사실 방법도 하나의 속성, 데이터 속성과 구별되는 호출 가능한 속성 같은 속성과 방법을 가진 대상을 클래스, 즉 Classl로 분류할 수 있다.클래스는 하나의 청사진과 같아서 하나의 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.