>  기사  >  백엔드 개발  >  Python에서 Ajax를 크롤링하는 방법

Python에서 Ajax를 크롤링하는 방법

(*-*)浩
(*-*)浩원래의
2019-07-01 10:22:035100검색

Python 패키지 사용: 요청.

Python에서 Ajax를 크롤링하는 방법

구체적인 방법: (권장 학습: Python 비디오 튜토리얼)

먼저 헤더의 User-Agent 필드에 주의하세요. 필요에 따라 무작위로 교환하여 사용하세요.

Ajax 데이터의 웹 페이지 기능: NetWork의 XHR 네트워크 흐름에는 몇 가지 Ajax 요청이 있으며, 그중 request_url은 ajax 요청 인터페이스여야 하며 헤더의 참조자는 직접 구성할 때 URL입니다. 헤더 참조자 필드를 설정해야 합니다.

Lagou.com 홈페이지에서 "java"를 검색해 보세요.

Python에서 Ajax를 크롤링하는 방법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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.