Ajax

Ajax,即异步的JaveScript和XML。它不是一门编程语言,而是利用JaveScript在保证页面不被刷新,页面链接不改变的情况下与服务器交换数据并更新部分网页的技术。

对于传统的网页,如果想要更新内容,那么必须要刷新整个页面,但有了Ajax,便可以在页面不被刷新的基础上更新其内容。

比如像微博有些网页就是采取的Ajax技术来进行部分网页内容的刷新。

接下来我们就通过Ajax来爬取某知名博主的全部微博内容,及其各条微博的点赞数,评论数等内容。

from urllib.parse import urlencode                           2 import requests
3 from pyquery import PyQuery as pq
4 base_url = " https://m.weibo.cn/api/container/getIndex?"
5 headers = {
6 "authority":"m.weibo.cn",
7 "referer":"https://m.weibo.cn/u/2830678474",
8 "user-agent":"Mozilla/5.0 (X11; Linux x86_64) Apple WebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.75 Safar i/537.36",
9 "x-requested-with":"XMLHttpRequest",
10 }
11 since_id = 0
12 def no_since_id():
13 global since_id
14 params = {
15 "type":"uid",
16 "value":"2830678474",
17 "containerid":"1076032830678474"
18 }
19 url = base_url + urlencode(params)
20 response = requests.get(url,headers = headers)
21 json = response.json()
22 since_id = json.get("data").get("cardlistInfo").get("si nce_id")
23 return response.json()
24
25 def get_since_id():
26 global since_id
27 params = {
28 "type":"uid",
29 "value":"2830678474",
30 "containerid":"1076032830678474",
31 "since_id":since_id
32 }
33 url = base_url + urlencode(params)
34 response = requests.get(url,headers = headers)
35 json = response.json()
36 since_id = json.get("data").get("cardlistInfo").get("si nce_id")
37 return response.json()
38
39
40 def parse_since_id(json):
if json:
42 items = json.get("data").get("cards")
43 for item in items:
44 item = item.get("mblog")
45 weibo = {}
46 weibo["id"] = item.get("id")
47 weibo["text"] = pq(item.get("text")).text()
48 weibo["attitudes"] = item.get("attitudes_count" )
49 weibo["comment_count"] = item.get("comments_cou nt")
50 yield weibo
51
52 if __name__ == "__main__":
53 json = no_since_id()
54 results1 = list(parse_since_id(json))
55 count = 0
56 while count < 20:#原则上可以无限爬取,但考虑到时间只爬> 取400条微博内容
57 json = get_since_id()
58 results = list(parse_since_id(json))
59 result_all = results1 + results
60 for result in result_all:
61 print(result)
62

部分爬取结果

{'id': '4475185367478768', 'text': '每当我颓废的时候,看看这个视频,我就浑身充满了斗志!为了我和我老婆的小米之家!我可以!我能行!加油! 崔庆才丨静觅的微博视频', 'attitudes': 67, 'comment_count': 20}
{'id': '4560043586357079', 'text': '今天和我老婆相识两周年啦!!!@长泽牙妹\n没错,聊天记录我还留着呢。\n没错,认识第一天就互相夸帅了。', 'attitudes': 21, 'comment_count': 4}
{'id': '4559318243876350', 'text': '塑料钞票是什么?', 'attitudes': 0, 'comment_count': 3}
{'id': '4559150907923613', 'text': '恭喜!', 'attitudes': 2, 'comment_count': 0}
{'id': '4558977381958673', 'text': '又和老婆约会了,嘿嘿嘿。', 'attitudes': 5, 'comment_count': 3}
{'id': '4558976778247661', 'text': '不在运营范围//@长泽牙妹:@崔庆才丨静觅 太牛逼了//@Easy:自动驾驶出租车终于来了 这东西普及以后,买车租车都不用了吧 //@pi1ot:', 'attitudes': 1, 'comment_count': 0}
{'id': '4558976588457736', 'text': '替我老婆来一票!我拼了!', 'attitudes': 0, 'comment_count': 7}
{'id': '4557910472659663', 'text': '家里又添加一枚苹果设备,又能连蓝牙又能听广播,当然最重要的还是气质! 崔庆才丨静觅的微博视频', 'attitudes': 8, 'comment_count': 11}
{'id': '4557363392028554', 'text': '必点不要餐具???', 'attitudes': 2, 'comment_count': 5}
{'id': '4556972688938168', 'text': '老婆快看!@长泽牙妹', 'attitudes': 0, 'comment_count': 2}
{'id': '4556771409006204', 'text': '', 'attitudes': 1, 'comment_count': 2}
{'id': '4556659122241609', 'text': '和老婆在一起七百天啦!\n@长泽牙妹', 'attitudes': 19, 'comment_count': 7}
{'id': '4555567403894898', 'text': '', 'attitudes': 2, 'comment_count': 0}
{'id': '4553441432841866', 'text': '看这个赛程,下场掘金必胜?', 'attitudes': 1, 'comment_count': 1}
{'id': '4551000373858164', 'text': '我老婆最好看了', 'attitudes': 4, 'comment_count': 2}
{'id': '4550992743635797', 'text': '之前跟老婆逛街,每当路过苹果店我都会去看看iMac,还跟老婆介绍说某个定制版多么多么牛逼,以后要是有台这个就好了。今天老婆居然直接送我了一台,还是定制版!啊啊啊啊啊啊啊我哭了! 我老婆也太好了吧!', 'attitudes': 25, 'comment_count': 29}
{'id': '4550482318590459', 'text': '@长泽牙妹', 'attitudes': 3, 'comment_count': 0}
{'id': '4548431908180073', 'text': '这是我老婆让我发的我老婆给我拍的我今天和我老婆道别的时候。 崔庆才丨静觅的微博视频', 'attitudes': 10, 'comment_count': 11}
{'id': '4545200389364228', 'text': '', 'attitudes': 1, 'comment_count': 0}
{'id': '4544491111844364', 'text': '老婆真好啊,今天感觉工作有点累不太开心,然后老婆晚上和我开了一下视频对我笑了笑撒了撒娇,我瞬间又开心又好了,感觉心里暖暖的,我老婆最好了!', 'attitudes': 15, 'comment_count': 3}
{'id': '4543259479641769', 'text': '我老婆最好看了', 'attitudes': 12, 'comment_count': 0}
{'id': '4475185367478768', 'text': '每当我颓废的时候,看看这个视频,我就浑身充满了斗志!为了我和我老婆的小米之家!我可以!我能行!加油! 崔庆才丨静觅的微博视频', 'attitudes': 67, 'comment_count': 20}
{'id': '4560043586357079', 'text': '今天和我老婆相识两周年啦!!!@长泽牙妹\n没错,聊天记录我还留着呢。\n没错,认识第一天就互相夸帅了。', 'attitudes': 21, 'comment_count': 4}
{'id': '4559318243876350', 'text': '塑料钞票是什么?', 'attitudes': 0, 'comment_count': 3}
{'id': '4559150907923613', 'text': '恭喜!', 'attitudes': 2, 'comment_count': 0}
{'id': '4558977381958673', 'text': '又和老婆约会了,嘿嘿嘿。', 'attitudes': 5, 'comment_count': 3}
{'id': '4558976778247661', 'text': '不在运营范围//@长泽牙妹:@崔庆才丨静觅 太牛逼了//@Easy:自动驾驶出租车终于来了 这东西普及以后,买车租车都不用了吧 //@pi1ot:', 'attitudes': 1, 'comment_count': 0}
{'id': '4558976588457736', 'text': '替我老婆来一票!我拼了!', 'attitudes': 0, 'comment_count': 7}
{'id': '4557910472659663', 'text': '家里又添加一枚苹果设备,又能连蓝牙又能听广播,当然最重要的还是气质! 崔庆才丨静觅的微博视频', 'attitudes': 8, 'comment_count': 11}
{'id': '4557363392028554', 'text': '必点不要餐具???', 'attitudes': 2, 'comment_count': 5}
{'id': '4556972688938168', 'text': '老婆快看!@长泽牙妹', 'attitudes': 0, 'comment_count': 2}
{'id': '4556771409006204', 'text': '', 'attitudes': 1, 'comment_count': 2}
{'id': '4543252072761828', 'text': '不知道大家是否已经对抖音有了一种厌倦?最早的时候我觉得内容质量还行,现在没刷几个视频,很多都是广告、带货、博人眼球、摆拍、空洞的内容,质量越来越差,越看越没劲,卸了卸了,还是撸代码好玩。', 'attitudes': 10, 'comment_count': 8}
{'id': '4541086507209784', 'text': '铁窗爱情3', 'attitudes': 25, 'comment_count': 4}
{'id': '4541085119162017', 'text': '即便没收费,那直播搞这个操作也是太服了。', 'attitudes': 3, 'comment_count': 0}
{'id': '4539580352832042', 'text': '铁窗爱情2', 'attitudes': 3, 'comment_count': 4}
{'id': '4538323178106309', 'text': '老婆返校了,但是出不来,于是就有了铁窗爱情。@长泽牙妹 北京', 'attitudes': 20, 'comment_count': 6}
{'id': '4536099089947100', 'text': '半路杀出个李咬金。', 'attitudes': 1, 'comment_count': 0}
{'id': '4534296319361611', 'text': '真尼玛被安卓搞死了啊啊啊啊!!!', 'attitudes': 6, 'comment_count': 9}
{'id': '4533068674897040', 'text': '毫无办法', 'attitudes': 1, 'comment_count': 1}
{'id': '4533019937083479', 'text': '[皱眉][皱眉][皱眉][皱眉]', 'attitudes': 0, 'comment_count': 0}
{'id': '4532539320184329', 'text': '又看了一遍感觉好好玩,再转发一下。', 'attitudes': 10, 'comment_count': 6}
{'id': '4475185367478768', 'text': '每当我颓废的时候,看看这个视频,我就浑身充满了斗志!为了我和我老婆的小米之家!我可以!我能行!加油! 崔庆才丨静觅的微博视频', 'attitudes': 67, 'comment_count': 20}
{'id': '4560043586357079', 'text': '今天和我老婆相识两周年啦!!!@长泽牙妹\n没错,聊天记录我还留着呢。\n没错,认识第一天就互相夸帅了。', 'attitudes': 21, 'comment_count': 4}
{'id': '4559318243876350', 'text': '塑料钞票是什么?', 'attitudes': 0, 'comment_count': 3}
{'id': '4559150907923613', 'text': '恭喜!', 'attitudes': 2, 'comment_count': 0}
{'id': '4558977381958673', 'text': '又和老婆约会了,嘿嘿嘿。', 'attitudes': 5, 'comment_count': 3}
{'id': '4558976778247661', 'text': '不在运营范围//@长泽牙妹:@崔庆才丨静觅 太牛逼了//@Easy:自动驾驶出租车终于来了 这东西普及以后,买车租车都不用了吧 //@pi1ot:', 'attitudes': 1, 'comment_count': 0}
{'id': '4558976588457736', 'text': '替我老婆来一票!我拼了!', 'attitudes': 0, 'comment_count': 7}
{'id': '4557910472659663', 'text': '家里又添加一枚苹果设备,又能连蓝牙又能听广播,当然最重要的还是气质! 崔庆才丨静觅的微博视频', 'attitudes': 8, 'comment_count': 11}
{'id': '4557363392028554', 'text': '必点不要餐具???', 'attitudes': 2, 'comment_count': 5}
{'id': '4556972688938168', 'text': '老婆快看!@长泽牙妹', 'attitudes': 0, 'comment_count': 2}
{'id': '4556771409006204', 'text': '', 'attitudes': 1, 'comment_count': 2}
{'id': '4532537851914227', 'text': '最近我好像又变瘦了,跟我老婆视频的时候,突然看见了镜头里的自己的某个角度有点陈冠希的影子,于是。\n:老婆,你有没有突然发现,我长得有点陈冠希的样子?\n:你可拉倒吧,陈冠希的最后结局都变成了赵本山。\n:\n后来想了想,赵本山就赵本山吧,起码有钱呢。', 'attitudes': 7, 'comment_count': 1}
{'id': '4531615743352894', 'text': '', 'attitudes': 1, 'comment_count': 0}
{'id': '4530223020512245', 'text': '都起的啥名啊?', 'attitudes': 5, 'comment_count': 4}
{'id': '4529050225741761', 'text': '下次又要好久才能见到老婆了。 济南·济南西火车站', 'attitudes': 8, 'comment_count': 0}
{'id': '4528448653499244', 'text': '', 'attitudes': 0, 'comment_count': 2}
{'id': '4528391442935808', 'text': '跟着老婆有肉吃。 济南', 'attitudes': 7, 'comment_count': 2}
{'id': '4528352155927072', 'text': '看我老婆的高难度攀岩\U0001f9d7♀️', 'attitudes': 8, 'comment_count': 7}
{'id': '4527987510742108', 'text': '崔庆才丨静觅的微博视频', 'attitudes': 9, 'comment_count': 5}
{'id': '4527780430358060', 'text': '老婆我来啦!!!我老婆接到我啦!!!\n济南 崔庆才丨静觅的微博视频', 'attitudes': 10, 'comment_count': 7}
{'id': '4527282934256454', 'text': '咋没有写老特?因为刷的太频繁了直接被发现了吗?', 'attitudes': 0, 'comment_count': 5}
{'id': '4475185367478768', 'text': '每当我颓废的时候,看看这个视频,我就浑身充满了斗志!为了我和我老婆的小米之家!我可以!我能行!加油! 崔庆才丨静觅的微博视频', 'attitudes': 67, 'comment_count': 20}
{'id': '4560043586357079', 'text': '今天和我老婆相识两周年啦!!!@长泽牙妹\n没错,聊天记录我还留着呢。\n没错,认识第一天就互相夸帅了。', 'attitudes': 21, 'comment_count': 4}
{'id': '4559318243876350', 'text': '塑料钞票是什么?', 'attitudes': 0, 'comment_count': 3}
{'id': '4559150907923613', 'text': '恭喜!', 'attitudes': 2, 'comment_count': 0}
{'id': '4558977381958673', 'text': '又和老婆约会了,嘿嘿嘿。', 'attitudes': 5, 'comment_count': 3}
{'id': '4558976778247661', 'text': '不在运营范围//@长泽牙妹:@崔庆才丨静觅 太牛逼了//@Easy:自动驾驶出租车终于来了 这东西普及以后,买车租车都不用了吧 //@pi1ot:', 'attitudes': 1, 'comment_count': 0}
{'id': '4558976588457736', 'text': '替我老婆来一票!我拼了!', 'attitudes': 0, 'comment_count': 7}
{'id': '4557910472659663', 'text': '家里又添加一枚苹果设备,又能连蓝牙又能听广播,当然最重要的还是气质! 崔庆才丨静觅的微博视频', 'attitudes': 8, 'comment_count': 11}
{'id': '4557363392028554', 'text': '必点不要餐具???', 'attitudes': 2, 'comment_count': 5}
{'id': '4556972688938168', 'text': '老婆快看!@长泽牙妹', 'attitudes': 0, 'comment_count': 2}
{'id': '4556771409006204', 'text': '', 'attitudes': 1, 'comment_count': 2}
{'id': '4527282414685304', 'text': '@长泽牙妹', 'attitudes': 0, 'comment_count': 0}
{'id': '4525957304939421', 'text': '', 'attitudes': 2, 'comment_count': 0}
{'id': '4524759205246322', 'text': '真是不可思议,突然想到了一个 idea,然后展开想了想貌似可以开拓一个新的研究领域,然后我突然就萌生了读博的想法???\n年轻人真是冲动啊,不过这说明我还年轻。', 'attitudes': 20, 'comment_count': 6}
{'id': '4522770660387278', 'text': '晚上下了雨感觉还挺凉快的,就开了个窗户,于是就进来了各种蚊子\U0001f99f。\n花露水没了,今晚该怎么过。', 'attitudes': 6, 'comment_count': 2}
{'id': '4521265567630156', 'text': '今天过了一个好开心的二十六周岁生日,我老婆和爸爸妈妈都给我发了大红包,老婆还给我订了哈根达斯巧克力蛋糕、三汁焖锅、牛排、小吃,超级好吃!跟室友和老婆一起云唱生日歌,我许了好多大大的愿望,希望都可以成真呀!', 'attitudes': 33, 'comment_count': 13}
{'id': '4520026164311692', 'text': '//@bluekaye: 狂欢是你们的,孤单是北京的', 'attitudes': 0, 'comment_count': 1}
{'id': '4519801776571076', 'text': '大家好久不见呀!\n想我了吧,我来了![嘿哈]\n我来秀老婆啦!!\n我老婆也太好看了吧!!!\n大家再见。', 'attitudes': 37, 'comment_count': 4}
{'id': '4516822408046339', 'text': '笑死我了,我老婆最近学英语嘛不是,昨天看到了一个英语外教头像好帅就果断报名远程口语课了。\n结果今天一上课,看到这老师长这样了。\n我老婆问,你疫情期间在家干嘛呢?他说我在家吃东西吃这么胖了哈哈哈哈。\n真是一胖毁所有啊哈哈哈哈。\n@长泽牙妹 你看还是你老公我最帅吧对不对。 ...全文', 'attitudes': 11, 'comment_count': 5}
{'id': '4475185367478768', 'text': '每当我颓废的时候,看看这个视频,我就浑身充满了斗志!为了我和我老婆的小米之家!我可以!我能行!加油! 崔庆才丨静觅的微博视频', 'attitudes': 67, 'comment_count': 20}
{'id': '4560043586357079', 'text': '今天和我老婆相识两周年啦!!!@长泽牙妹\n没错,聊天记录我还留着呢。\n没错,认识第一天就互相夸帅了。', 'attitudes': 21, 'comment_count': 4}
{'id': '4559318243876350', 'text': '塑料钞票是什么?', 'attitudes': 0, 'comment_count': 3}
{'id': '4559150907923613', 'text': '恭喜!', 'attitudes': 2, 'comment_count': 0}
{'id': '4558977381958673', 'text': '又和老婆约会了,嘿嘿嘿。', 'attitudes': 5, 'comment_count': 3}
{'id': '4558976778247661', 'text': '不在运营范围//@长泽牙妹:@崔庆才丨静觅 太牛逼了//@Easy:自动驾驶出租车终于来了 这东西普及以后,买车租车都不用了吧 //@pi1ot:', 'attitudes': 1, 'comment_count': 0}
{'id': '4558976588457736', 'text': '替我老婆来一票!我拼了!', 'attitudes': 0, 'comment_count': 7}
{'id': '4557910472659663', 'text': '家里又添加一枚苹果设备,又能连蓝牙又能听广播,当然最重要的还是气质! 崔庆才丨静觅的微博视频', 'attitudes': 8, 'comment_count': 11}
{'id': '4557363392028554', 'text': '必点不要餐具???', 'attitudes': 2, 'comment_count': 5}
{'id': '4556972688938168', 'text': '老婆快看!@长泽牙妹', 'attitudes': 0, 'comment_count': 2}
{'id': '4556771409006204', 'text': '', 'attitudes': 1, 'comment_count': 2}
{'id': '4516579494515542', 'text': '今天一共开了八个会,终于结束了。 北京', 'attitudes': 6, 'comment_count': 1}
{'id': '4515643564676096', 'text': '', 'attitudes': 0, 'comment_count': 0}
{'id': '4514252406334323', 'text': '我这个博客 网页链接 最近一直不太行,初步排查一直有持续的被攻击现象,加了防护、CDN 都没啥用,而且是白天不行,深夜就没啥事,难道你这攻击还分时间段休息?本来一台机子扛不住,我想着,那我多加点主机行了吧,我试着把博客迁移了 Kubernetes 加了 10 个 Pod 来 Serve 也还是超慢。我 ...全文', 'attitudes': 3, 'comment_count': 12}
{'id': '4513306594949717', 'text': '我老婆的大长腿!!', 'attitudes': 3, 'comment_count': 2}
{'id': '4513126970648098', 'text': '卧槽我已经十多天没发微博了。,赶紧水一条压压惊。', 'attitudes': 4, 'comment_count': 4}
爬取内容较多,只粘贴了一部分。

Ajax数据爬取--爬取微博的更多相关文章

  1. 爬虫—Ajax数据爬取

    一.什么是Ajax 有时候我们使用浏览器查看页面正常显示的数据与使用requests抓取页面得到的数据不一致,这是因为requests获取的是原始的HTML文档,而浏览器中的页面是经过JavaScri ...

  2. Ajax数据的爬取(淘女郎为例)

    mmtao Ajax数据的爬取(淘女郎为例) 如有疑问,转到 Wiki 淘女郎模特抓取教程 网址:https://0x9.me/xrh6z 判断一个页面是不是 Ajax 加载的方法: 查看网页源代码, ...

  3. Ajax数据爬取

    Ajax的基本原理 以菜鸟教程的代码为例: XMLHTTPRequest对象是JS对Ajax的底层实现: var xmlhttp; if (window.XMLHttpRequest) { // IE ...

  4. 爬虫(十):AJAX、爬取AJAX数据

    1. AJAX 1.1 什么是AJAX AJAX即“Asynchronous JavaScript And XML”(异步JavaScript和XML)可以使网页实现异步更新,就是不重新加载整个网页的 ...

  5. scrapy过滤重复数据和增量爬取

    原文链接 前言 这篇笔记基于上上篇笔记的---<scrapy电影天堂实战(二)创建爬虫项目>,而这篇又涉及redis,所以又先熟悉了下redis,记录了下<redis基础笔记> ...

  6. php外挂python脚本抓取ajax数据

    之前我写过一遍php外挂python脚本处理视频的文章.今天和大家分享下php外挂python实现输入关键字搜索的脚本 首先我们先来分析一波网站: http://www.dzdpw.com/s.php ...

  7. python反反爬,爬取猫眼评分

    python反反爬,爬取猫眼评分.解决网站爬取时,内容类似:$#x12E0;样式,且每次字体文件变化.下载FontCreator . 用FontCreator打开base.woff.查看对应字体关系 ...

  8. python实现列表页数据的批量抓取练手练手的

    python实现列表页数据的批量抓取,练手的,下回带分页的 #!/usr/bin/env python # coding=utf-8 import requests from bs4 import B ...

  9. python爬虫之分析Ajax请求抓取抓取今日头条街拍美图(七)

    python爬虫之分析Ajax请求抓取抓取今日头条街拍美图 一.分析网站 1.进入浏览器,搜索今日头条,在搜索栏搜索街拍,然后选择图集这一栏. 2.按F12打开开发者工具,刷新网页,这时网页回弹到综合 ...

随机推荐

  1. Dapr 交通控制示例

    Dapr 已在塔架就位 将发射新一代微服务 牛年 dotnet云原生技术趋势 Dapr是如何简化微服务的开发和部署 前面几篇文章都是从大的方面给大家分享Dapr 能帮助我们解决什么问题,微软从开源到1 ...

  2. html+ashx + NPOI 实现导出Excel文件并且预览和下载

      先看看实现效果 简单描述一下实现过程: 1. 生成报表,返回报表文件路径 $.post 请求一般处理文件ashx ,通过npoi生成对应的excel文件.生成成功后,返回文件保存的完整路径 2.  ...

  3. go modules——HelloWorld示例

    go modules--HelloWorld示例 go modules 存在的意义是方便代码的共享(虽然这会使自己开发过程中有一些小小的麻烦) 开发第一步,创建一个github仓库,然后克隆到本地 首 ...

  4. 智能广告投放平台 All in One

    智能广告投放平台 All in One app demos 知之数据 一站式广告营销平台 https://hio.cn/ refs https://www.jonmellman.com/posts/p ...

  5. React Portal All In One

    React Portal All In One react multi root https://reactjs.org/docs/portals.html https://zh-hans.react ...

  6. Google Chrome All In One

    Google Chrome All In One Chrome Experiments Chrome 测试版 Chrome 开发者版 Chrome Canary 版 chrome://welcome/ ...

  7. 前端架构模式 All In One

    前端架构模式 All In One 架构模式 同构 异构 微前端 Web Components 组件化 无框架 去框架 前后端分离 前端架构图 Clean Architecture https://b ...

  8. code screenshot beautify plugin & 代码截图美化插件

    code screenshot beautify plugin & 代码截图美化插件 代码截图美化 codesnap 微信分享代码截图 https://github.com/kufii/Cod ...

  9. how to updating Node.js and npm

    how to updating  Node.js and npm 1 Installing Node.js and updating npm How do I update Node.js ? Not ...

  10. JS Object Deep Copy & 深拷贝

    JS Object Deep Copy & 深拷贝 针对深度拷贝,需要使用其他方法 JSON.parse(JSON.stringify(obj));,因为 Object.assign() 拷贝 ...