Heim > Artikel > Backend-Entwicklung > Wie man Ajax in Python crawlt
Python-Paket verwenden: Anfragen.
Spezifische Methode: (empfohlenes Lernen: Python-Video-Tutorial)
Der erste Schritt besteht darin, Ihre eigenen Header zu definieren. Beachten Sie, dass Sie das Feld „User-Agent“ in den Headern verwenden können, um eine Liste nach Ihren eigenen Bedürfnissen für die zufällige Ersetzung zu entwerfen.
Webseitenfunktionen von Ajax-Daten: Es gibt einige Ajax-Anfragen im XHR-Netzwerkfluss in NetWork, deren request_url eine Ajax-Anfrageschnittstelle sein muss und der Referrer in den Headern die URL vor dem Sprung ist. und es wird selbst erstellt. Das Referrer-Feld muss in den Headern festgelegt werden.
Nehmen Sie als Beispiel die Suche nach „Java“ auf der Homepage von Lagou.com:
Der Ajax-Datencrawler und der gewöhnliche Webcrawler haben eine weitere URL, eine davon ist die Referrer-URL . In Kopfzeilen platziert. Die andere ist ajax_url, die auch die Hauptzugriffs-URL ist.
Der wichtigste Punkt ist, dass Ajax im Allgemeinen JSON-Daten zurückgibt, sodass die Analyseform der erfassten Daten unterschiedlich ist. Konvertieren Sie einfach die Ergebnismenge in eine JSON-Ergebnismenge, und die Zugriffsmethode ist ein gewöhnlicher Wörterbuch- oder Listenzugriff.
Der andere ist der Zugriffsparameter. Wenn die Anfrage einen Parameter enthält, wird er erstellt. Wenn nicht, ignorieren Sie es. In diesem Beispiel gibt es Parameter. Achten Sie auf die Konstruktionsmethode des Parameterwörterbuchs
Ein einfacher vollständiger Code wird unten angezeigt
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("程序结束")
Weitere technische Artikel zu Python finden Sie unterPython-Tutorial Kolumne zum Lernen!
Das obige ist der detaillierte Inhalt vonWie man Ajax in Python crawlt. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!