如下是我简单的获取拉钩网异步加载页面信息的过程

获取的是深圳 Python 岗位的所有信息,并保存在Mongo中

(对于异步加载,有的人说是把你要爬页面的信息整个页面先爬下来,保存本地,然后再看有没有你要的东西,有不是异步,没有就是异步;这种方式当然是没有任何问题,但是我的判断方式是,当我点击页面某个位置时,页面的链接并没有变化,而内容却发生了变化,这种我就说它是异步加载,当然,异步加载方式很多,我们要具体网站具体分析)

这个东西完全可以封装成类,各司其职(这里就可以延伸到Scrapy框架) 后面会更新一个使用Scrapy框架抓取信息的教程

当然还有selenium+phantomjs

直接上代码

import requests

import json

import pymongo

headers = {

'Referer':'https://www.lagou.com/jobs/list_Python?px=default&city=%E6%B7%B1%E5%9C%B3',

'User-Agent':'Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:57.0) Gecko/20100101 Firefox/57.0'}

# headers中的Referer参数是必须的,?号之前都是必须的后面可以省略,不会对结果有影响

pagenum = 1

key = 'Python' #这里可以设置一个列表,先抓取页面所有的技术名称,保存起来,然后抓取职位信息的时候循环嵌套遍历

first = 'true'#可以不要,没发现有什么作用

post_data = {'first': first,'kd':key,'pn':pagenum}

#first:代表是不是首页,kd:代表关键字,pn:代表第几页

json_url = 'https://www.lagou.com/jobs/positionAjax.json?px=default&city=%E6%B7%B1%E5%9C%B3&needAddtionalResult=false&isSchoolJob=0'

#获取json内容

def get_content(post_data):

r = requests.post(json_url,headers=headers,data=post_data)

datas = json.loads(r.text)

return datas['content']

#获取mongo连接

def get_connect():

client = pymongo.MongoClient('localhost', 27017)

lagou = client['panpan']

lagoudt = lagou['lagou']

return lagoudt

#数据写入数据库

def to_mongo(results):

lagou = get_connect()

for result in results:

lagou.insert(

{'positionName' : result['positionName'],

'positionLibles' : ','.join(result['positionLables']),

'workYear' : result['workYear'],

'education': result['education'],

'salary' : result['salary'],

'city' : result['city'],

'financeStage' : result['financeStage'],

'industryField' : result['industryField'],

'createTime' : result['createTime'],

'positionAdvantage' : result['positionAdvantage'],

'companySize' : result['companySize'],

'district' : result['district'],

'companyShortName' : result['companyShortName'],

'companyFullName' : result['companyFullName'],

'firstType' : result['firstType'],

'secondType' : result['secondType'],

'subwayline' : result['subwayline'],

'stationname' : result['stationname'],

'linestaion' : result['linestaion']})

total_page = get_content(post_data)['pageSize'] #总页数

#循环每一页的内容

for page in range(1,total_page+1):

first = 'false'

print(page)#记录当前页码

post_data = {'kd':'Python','pn':page}

data = get_content(post_data)

to_mongo(data['positionResult']['result'])

这明细是一个异步加载的例子,我就不多说了,前面有

图片.png

这个一看就是通过Ajax 实现的异步加载吗,而且Response里返回的JSon内容就是我们需要的呀,直接取不就行了,话不多说,直接看上面代码,有疑问的可以给我留言,我也是刚开始学,有问题的地方,请您指正

图片.png

python 异步加载图片_Python 爬取拉钩网异步加载页面相关推荐

  1. python爬虫知乎图片_python 爬取知乎图片

    先上完整代码 1 importrequests2 importtime3 importdatetime4 importos5 importjson6 importuuid7 from pyquery ...

  2. python最新官网图片_python爬取福利网站图片完整代码

    存起来 自己学习... import requests,bs4,re,os,threading class MeiNvTu: def __init__(self): self.url_main='ht ...

  3. python 爬取拉钩网数据

    python 爬取拉钩网数据 完整代码下载:https://github.com/tanjunchen/SpiderProject/blob/master/lagou/LaGouSpider.py # ...

  4. datetime 索引_Python爬取B站番剧索引页面并保存文本和图片

    期末的Python考试要写一个爬取网站信息的程序,我就选取了b站番剧索引页面作为目标网页(因为感觉番剧主页的信息太杂了.) 目标网页:https://www.bilibili.com/anime/in ...

  5. python提取ajax异步加载数据_python爬取豆瓣电影分类排行榜引出的异步加载(AJAX)问题...

    1.背景 之前的文章中已经介绍过猫眼TOP100的电影信息爬取案例,网页每页有10条电影信息,通过翻页发现URL变化规律构造循环爬取10页100条全部电影信息.但是豆瓣电影分类排行榜的网页情况就所不同 ...

  6. python爬虫网页中的图片_Python爬取网页中的图片(搜狗图片)详解

    前言 最近几天,研究了一下一直很好奇的爬虫算法.这里写一下最近几天的点点心得.下面进入正文: 你可能需要的工作环境: 我们这里以sogou作为爬取的对象. 首先我们进入搜狗图片http://pic.s ...

  7. python爬取贴吧图片_Python爬取贴吧多页图片

    Python爬取贴吧图片都只能爬取第一页的,加了循环也不行,现在可以了. #coding:utf-8 import urllib import urllib2 import re import os ...

  8. python爬斗鱼直播数据图片_Python爬取2000万直播数据——看20万游戏主播能否月入100万...

    原标题:Python爬取2000万直播数据--看20万游戏主播能否月入100万 她那时候还太年轻,不知道命运赠送的礼物,早已暗中标好了价格. --茨威格 社会在发展,时代在进步.伴随着未曾停息的拥护声 ...

  9. python爬虫好友图片_Python爬取所有微信好友头像,制作微信好友图片墙

    今天咱就试试怎么爬取微信列表中所有好友的头像,并做成一张图片墙,代码不长,60 行就可以搞定. 核心是利用三个库:wxpy 库,用于获取好友头像然后下载 Pillow 库,用于拼接头像 Pyinsta ...

最新文章

  1. Output Operations on DStreams
  2. spring框架搭建第一天
  3. 每日程序C语言40-不带头结点的尾插法创建链表
  4. JavaWeb项目实战(2)安装JDK和Tomcat以及Eclipse构造开发环境
  5. hdu 1269 tarjan求强连通分量
  6. [C++]头文件(Header Files)和命名空间(Namespace)
  7. 17-什么是资源服务器
  8. 微信公众号图片上传和预览功能前端实现
  9. jQWidgets API 笔记
  10. 实现线程的三种方式KLT/ULT/LWP
  11. WebViewJavascriptBridge
  12. jsp2022326税务税收协同办公系统
  13. 互联网大厂的会员“陷阱”
  14. FCPX插件:10组马赛克方格图像组合展示动画预设Mosaic Animation
  15. 计算机翻译属于下列哪个领域的应用,机器翻译应用平民化:机器翻译属于下列哪个领域的应用...
  16. 头条项目推荐的相关技术(一): 数据库的迁移与定时迁移技术
  17. LPOJ - 5498 「NOIP2010」机器翻译
  18. RK3399平台开发系列讲解(UART子系统)4.26、TTY子系统之系统框架
  19. 基于FPGA平台RISCV架构的SOC应用系统设计1
  20. 计算机对会计有什么好处,会计专业转行干过设计工作,这些宝贵经验和感悟,对你有用(三)...

热门文章

  1. PG数据库内核源码分析——UPDATE
  2. 解决win10无法搜索本地应用
  3. 基于python的Django框架购物商城设计与实现毕业设计毕设参考
  4. HTML CSS实现 轮播图 遮罩层
  5. iconfont使用的三种方式(阿里巴巴矢量图标库代码使用)
  6. 丛亚平:中国财富集中度超美nbsp;贫富…
  7. 解密了一封300多年前的信,“透视”书信首次实现
  8. axis2 默认端口_axis2 webservice 问题,高手进,急!!!!!!!!!!!!!!!!!!!!!
  9. 电脑开机密码忘记了怎么办
  10. 想自己搭建服务器,永久运行网站?一个 U 盘大小的树莓派就够了!