Utiliser le package python : requêtes.
Méthode spécifique : (apprentissage recommandé : Tutoriel vidéo Python)
La première étape consiste à définir vos propres en-têtes. Notez que le champ User-Agent dans les en-têtes peut être utilisé pour concevoir une liste en fonction de vos propres besoins pour un remplacement aléatoire.
Fonctionnalités des pages Web des données ajax : il existe certaines requêtes ajax dans le flux réseau XHR dans NetWork, parmi lesquelles leur request_url doit être une interface de requête ajax, et le référent dans les en-têtes est l'url avant le saut, et il est construit lui-même. Le champ référent doit être défini dans les en-têtes.
Prenons comme exemple la recherche de "java" sur la page d'accueil de Lagou.com :
Le robot de données ajax et le robot d'exploration Web ordinaire ont une URL de plus, l'une est l'URL du référent . Placé dans les en-têtes. L'autre est ajax_url, qui est également l'URL d'accès principale.
Le point le plus important est que ajax renvoie généralement des données json, donc la forme d'analyse des données capturées est différente. Convertissez simplement l'ensemble de résultats en un ensemble de résultats json, et la méthode d'accès est un accès ordinaire par dictionnaire ou par liste.
L'autre est le paramètre d'accès. Si la requête contient un paramètre, elle sera construite. Sinon, ignorez-le. Il y a des paramètres dans cet exemple. Faites attention à la méthode de construction du dictionnaire de paramètres
Un code complet simple est présenté ci-dessous
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("程序结束")
Pour plus d'articles techniques liés à Python, veuillez visiterTutoriel Python Chronique pour apprendre !
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!