Python 위 챗 공식 번호 글 에서 얻 은 예제 코드
우 리 는 웹 페이지 의 위 챗 공식 플랫폼 의 그림 과 글 메시지 의 하이퍼링크 를 통 해 우리 가 필요 로 하 는 인 터 페 이 스 를 얻 었 다.
인터페이스 에서 우 리 는 대응 하 는 위 챗 공중 번호 와 대응 하 는 모든 위 챗 공중 번호 문장 을 얻 을 수 있다.
인터페이스 분석
위 챗 공식 번호 의 인터페이스 가 져 오기:
https://mp.weixin.qq.com/cgi-bin/searchbiz?
인자:
action=search_biz
begin=0
count=5
query=공중 번호 이름
token=계 정 마다 대응 하 는 token 값
lang=zh_CN
f=json
ajax=1
요청 방식:
GET
그래서 이 인터페이스 에서 우 리 는 token 만 얻 으 면 되 고 query 는 검색 해 야 할 공식 번호 이 며 token 은 로그 인 한 웹 링크 를 통 해 얻 을 수 있 습 니 다.
공식 번호 에 해당 하 는 글 의 인 터 페 이 스 를 가 져 옵 니 다:
https://mp.weixin.qq.com/cgi-bin/appmsg?
인자:
action=list_ex
begin=0
count=5
fakeid=MjM5NDAwMTA2MA==
type=9
query=
token=557131216
lang=zh_CN
f=json
ajax=1
요청 방식:
GET
이 인터페이스 에서 우리 가 가 져 와 야 할 값 은 이전 token 과 fakeid 가 있 고 이 fakeid 는 첫 번 째 인터페이스 에서 가 져 올 수 있 습 니 다.그래서 우 리 는 위 챗 공중 호 문장의 데 이 터 를 얻 을 수 있다.
실현
첫 번 째 단계:
우선 selenium 시 뮬 레이 션 로그 인 을 통 해 쿠키 와 대응 하 는 token 을 가 져 와 야 합 니 다.
def weChat_login(user, password):
post = {}
browser = webdriver.Chrome()
browser.get('https://mp.weixin.qq.com/')
sleep(3)
browser.delete_all_cookies()
sleep(2)
#
browser.find_element_by_xpath("//a[@class='login__type__container__select-type']").click()
sleep(2)
#
input_user = browser.find_element_by_xpath("//input[@name='account']")
input_user.send_keys(user)
input_password = browser.find_element_by_xpath("//input[@name='password']")
input_password.send_keys(password)
sleep(2)
#
browser.find_element_by_xpath("//a[@class='btn_login']").click()
sleep(2)
#
print(' ')
sleep(20)
#
browser.get('https://mp.weixin.qq.com/')
sleep(5)
#
url = browser.current_url
# cookie
cookies = browser.get_cookies()
for item in cookies:
post[item['name']] = item['value']
#
cookie_str = json.dumps(post)
#
with open('cookie.txt', 'w+', encoding='utf-8') as f:
f.write(cookie_str)
print('cookie ')
# , token
paramList = url.strip().split('?')[1].split('&')
#
paramdict = {}
for item in paramList:
paramdict[item.split('=')[0]] = item.split('=')[1]
# token
return paramdict['token']
로그 인 방법 을 정 의 했 습 니 다.그 안의 매개 변 수 는 로그 인 한 계 정과 비밀번호 이 고 쿠키 를 저장 하 는 사전 의 값 을 정 의 했 습 니 다.아 날로 그 사용자 가 해당 하 는 계 정 비밀 번 호 를 입력 하고 로그 인 을 클릭 하면 스 캔 인증 이 나타 나 고 로그 인 한 위 챗 으로 스 캔 하면 됩 니 다.현재 웹 페이지 를 새로 고침 한 후 현재 쿠키 와 token 을 가 져 와 되 돌려 줍 니 다.
두 번 째 단계:
1.대중 번호 인 터 페 이 스 를 요청 하고 우리 가 필요 로 하 는 fakeid 를 가 져 옵 니 다.
url = 'https://mp.weixin.qq.com'
headers = {
'HOST': 'mp.weixin.qq.com',
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.183 Safari/537.36 Edg/86.0.622.63'
}
with open('cookie.txt', 'r', encoding='utf-8') as f:
cookie = f.read()
cookies = json.loads(cookie)
resp = requests.get(url=url, headers=headers, cookies=cookies)
search_url = 'https://mp.weixin.qq.com/cgi-bin/searchbiz?'
params = {
'action': 'search_biz',
'begin': '0',
'count': '5',
'query': ' ',
'token': token,
'lang': 'zh_CN',
'f': 'json',
'ajax': '1'
}
search_resp = requests.get(url=search_url, cookies=cookies, headers=headers, params=params)
우리 가 얻 은 token 과 쿠키 를 전송 한 다음 requests.get 요청 을 통 해 되 돌아 오 는 위 챗 공식 번호 의 json 데 이 터 를 얻 습 니 다.
lists = search_resp.json().get('list')[0]
위의 코드 를 통 해 해당 하 는 공중 번호 데 이 터 를 얻 을 수 있 습 니 다.
fakeid = lists.get('fakeid')
위의 코드 를 통 해 대응 하 는 fakeid 를 얻 을 수 있 습 니 다.2.위 챗 공중 번호 문장 인 터 페 이 스 를 요청 하고 우리 가 필요 로 하 는 문장 데 이 터 를 가 져 옵 니 다.
appmsg_url = 'https://mp.weixin.qq.com/cgi-bin/appmsg?'
params_data = {
'action': 'list_ex',
'begin': '0',
'count': '5',
'fakeid': fakeid,
'type': '9',
'query': '',
'token': token,
'lang': 'zh_CN',
'f': 'json',
'ajax': '1'
}
appmsg_resp = requests.get(url=appmsg_url, cookies=cookies, headers=headers, params=params_data)
우 리 는 fakeid 와 token 을 전송 한 후에 requests.get 요청 인 터 페 이 스 를 호출 하여 돌아 온 json 데 이 터 를 얻 었 습 니 다.우 리 는 위 챗 공중 호 문장 에 대한 오 르 기 를 실현 했다.
총화
위 챗 공식 번호 글 에 대한 오 르 기 를 통 해 selenium 과 requests 의 용법 과 요청 인 터 페 이 스 를 어떻게 얻 는 지 파악 해 야 합 니 다.그러나 주의해 야 할 것 은 우리 가 순환 적 으로 글 을 가 져 올 때 지연 시간 을 설정 해 야 한 다 는 것 이다.그렇지 않 으 면 계 정 이 쉽게 차단 되 어 돌아 오 는 데 이 터 를 얻 지 못 할 것 이다.
파 이 썬 위 챗 공식 번호 글 에서 얻 은 예제 코드 에 관 한 이 글 은 여기까지 소개 되 었 습 니 다.더 많은 파 이 썬 위 챗 공식 번호 글 에서 얻 은 내용 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 조회 하 시기 바 랍 니 다.앞으로 많은 지지 바 랍 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Python의 None과 NULL의 차이점 상세 정보그래서 대상 = 속성 + 방법 (사실 방법도 하나의 속성, 데이터 속성과 구별되는 호출 가능한 속성 같은 속성과 방법을 가진 대상을 클래스, 즉 Classl로 분류할 수 있다.클래스는 하나의 청사진과 같아서 하나의 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.