• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

python怎么爬取ajax

python 搞代码 4年前 (2022-01-09) 14次浏览 已收录 0个评论

使用python包:requests。

具体方法:(推荐学习:Python视频教程)

首先是定义自己headers,注意headers里面的User-Agent这一字段可以根据自己需求设计一个列表,用于随机调换。

ajax数据的网页特点:NetWork中的XHR网络流中有一些ajax请求,其中它们request_url必定是一个ajax请求接口,并且headers里面的referer是其跳转前的url,在构造自己的headers的时候需要设置referer字段。

以拉勾网主页搜索“java”为例:

ajax数据的抓取爬虫和普通的网页爬取多了一个url,一个是referer的url,放置于headers中。另外一个就是ajax_url,这个也是主要访问url。

最重要的一点,ajax一般返回json数据,所以抓取下来的数据解析形式有所不同。直接将结果集转换成json结果集即可,访问方式就是普通字典、列表访问形式。

另外一个就是访问参数,若请求中带有param,就将其构造。若没有可忽略。本例中有参数,注意参数字典构造方法

下面就展示出来一个简单的完整代码

from urllib.r<strong>本文来源gaodai#ma#com搞@@代~&码网</strong>equest import quote,unquoteimport randomimport 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' %cityuser_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教程栏目进行学习!

以上就是python怎么爬取ajax的详细内容,更多请关注搞代码gaodaima其它相关文章!


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:python怎么爬取ajax

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址