Python 패키지 사용: 요청.
구체적인 방법: (권장 학습: Python 비디오 튜토리얼)
먼저 헤더의 User-Agent 필드에 주의하세요. 필요에 따라 무작위로 교환하여 사용하세요.
Ajax 데이터의 웹 페이지 기능: NetWork의 XHR 네트워크 흐름에는 몇 가지 Ajax 요청이 있으며, 그중 request_url은 ajax 요청 인터페이스여야 하며 헤더의 참조자는 직접 구성할 때 URL입니다. 헤더 참조자 필드를 설정해야 합니다.
Lagou.com 홈페이지에서 "java"를 검색해 보세요.
Ajax 데이터 크롤러에는 일반 웹 크롤러보다 URL이 하나 더 있는데, 그 중 하나가 헤더에 있는 리퍼러 URL입니다. 다른 하나는 기본 액세스 URL이기도 한 ajax_url입니다.
가장 중요한 점은 ajax는 일반적으로 json 데이터를 반환하기 때문에 캡처된 데이터의 파싱 형식이 다르다는 것입니다. 간단히 결과 세트를 json 결과 세트로 변환하고 액세스 방법은 일반적인 사전 또는 목록 액세스입니다.
다른 하나는 액세스 매개변수입니다. 요청에 매개변수가 포함되어 있으면 구성됩니다. 그렇지 않다면 무시하십시오. 이 예제에는 매개변수가 있습니다. 매개변수 사전 구성 방법에 주의하세요
아래에 간단한 전체 코드가 나와 있습니다
from urllib.request import quote,unquote import random import requests keyword = quote('java').strip() print(keyword, type(keyword)) city = quote('郑州').strip() print(unquote(city)) refer_url = 'https://www.lagou.com/jobs/list_%s?city=%s&cl=false&fromSearch=true&labelWords=&suginput=' % (keyword, city) ajax_url = 'https://www.lagou.com/jobs/positionAjax.json?city=%s&needAddtionalResult=false' %city user_agents=[ 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36', 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36 Edge/16.16299', ] data ={ 'first': 'true', 'pn': '1', 'kd': keyword, } headers={ 'Accept': 'application/json, text/javascript, */*; q=0.01', 'Accept-Encoding': 'gzip, deflate, br', 'Accept-Language': 'zh-CN,zh;q=0.9', 'Connection': 'keep-alive', 'Content-Length': '46', 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8', 'Host': 'www.lagou.com', 'Origin': 'https://www.lagou.com', 'Referer': refer_url, 'User-Agent': user_agents[random.randrange(0,3)], 'X-Anit-Forge-Code': '0', 'X-Anit-Forge-Token': 'None', 'X-Requested-With': 'XMLHttpRequest', } resp = requests.post(ajax_url,data=data, headers=headers) result = resp.json() print(result) # print(result) #result 就是最终获得的json格式数据 item = result['content']['positionResult']['result'][0] print(item) #item就是单个招聘条目信息 print("程序结束")
더 많은 Python 관련 기술 기사를 보려면 Python Tutorial 칼럼을 방문하여 알아보세요!
위 내용은 Python에서 Ajax를 크롤링하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!