真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

python如何爬取ajax-創(chuàng)新互聯(lián)

小編給大家分享一下python如何爬取ajax,希望大家閱讀完這篇文章后大所收獲,下面讓我們一起去探討吧!

創(chuàng)新互聯(lián)是一家集網(wǎng)站建設(shè),鳳泉企業(yè)網(wǎng)站建設(shè),鳳泉品牌網(wǎng)站建設(shè),網(wǎng)站定制,鳳泉網(wǎng)站建設(shè)報(bào)價(jià),網(wǎng)絡(luò)營(yíng)銷(xiāo),網(wǎng)絡(luò)優(yōu)化,鳳泉網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強(qiáng)企業(yè)競(jìng)爭(zhēng)力??沙浞譂M足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時(shí)我們時(shí)刻保持專(zhuān)業(yè)、時(shí)尚、前沿,時(shí)刻以成就客戶成長(zhǎng)自我,堅(jiān)持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實(shí)用型網(wǎng)站。

使用python包:requests。

具體方法:

首先是定義自己headers,注意headers里面的User-Agent這一字段可以根據(jù)自己需求設(shè)計(jì)一個(gè)列表,用于隨機(jī)調(diào)換。

ajax數(shù)據(jù)的網(wǎng)頁(yè)特點(diǎn):NetWork中的XHR網(wǎng)絡(luò)流中有一些ajax請(qǐng)求,其中它們r(jià)equest_url必定是一個(gè)ajax請(qǐng)求接口,并且headers里面的referer是其跳轉(zhuǎn)前的url,在構(gòu)造自己的headers的時(shí)候需要設(shè)置referer字段。

以拉勾網(wǎng)主頁(yè)搜索“java”為例:

python如何爬取ajaxajax數(shù)據(jù)的抓取爬蟲(chóng)和普通的網(wǎng)頁(yè)爬取多了一個(gè)url,一個(gè)是referer的url,放置于headers中。另外一個(gè)就是ajax_url,這個(gè)也是主要訪問(wèn)url。

最重要的一點(diǎn),ajax一般返回json數(shù)據(jù),所以抓取下來(lái)的數(shù)據(jù)解析形式有所不同。直接將結(jié)果集轉(zhuǎn)換成json結(jié)果集即可,訪問(wèn)方式就是普通字典、列表訪問(wèn)形式。

另外一個(gè)就是訪問(wèn)參數(shù),若請(qǐng)求中帶有param,就將其構(gòu)造。若沒(méi)有可忽略。本例中有參數(shù),注意參數(shù)字典構(gòu)造方法

下面就展示出來(lái)一個(gè)簡(jiǎn)單的完整代碼

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格式數(shù)據(jù)
item = result['content']['positionResult']['result'][0]
print(item)
#item就是單個(gè)招聘條目信息
print("程序結(jié)束")

看完了這篇文章,相信你對(duì)python如何爬取ajax有了一定的了解,想了解更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!


標(biāo)題名稱(chēng):python如何爬取ajax-創(chuàng)新互聯(lián)
網(wǎng)站URL:http://weahome.cn/article/cejejo.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部