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. unity编辑器扩展学习

    扩展编辑器实际上就是在unity菜单栏中添加一些按钮,可以一键执行一些重复性的工作. 一.添加按钮 1.简单使用MenuItem特性 using UnityEngine; using UnityEdi ...

  2. Keras 报错: Error when checking target: expected dense_4...

    笔者此处是一个回归任务, 最后一层是: ... pred = Dense(1)(x) 在最后一个Dense层前加上x = Flatten()(x)即可.

  3. 关于 TCP 三次握手和四次挥手,满分回答在此

    尽人事,听天命.博主东南大学研究生在读,热爱健身和篮球,正在为两年后的秋招准备中,乐于分享技术相关的所见所得,关注公众号 @ 飞天小牛肉,第一时间获取文章更新,成长的路上我们一起进步 本文已收录于 C ...

  4. uni-app 支持第三方 H5 离线包

    uni-app 支持第三方 H5 离线包 https://uniapp.dcloud.io/ https://github.com/dcloudio/uni-app refs xgqfrms 2012 ...

  5. 如何在没有显示器的情况下,查看 Raspberry Pi 3的 IP 信息(Raspberry Pi 3 ,IP Address)

    1. 如何在没有显示器的情况下,查看 Raspberry Pi 3的 IP 信息(Raspberry Pi 3 ,IP Address) 1 IP Address Any device connect ...

  6. Subresource Integrity,SRI,Cross-Origin Resource Sharing (CORS),子资源的完整性检查,Subresource Integrity checking,CORS,Ajax

    SRI https://code.jquery.com/ SRI是一种新的W3C规范,它允许Web开发人员,以确保托管在第三方服务器上的资源是没有被篡改的.SRI的使用,建议作为最佳实践,每当库从第三 ...

  7. GitHub in depth

    GitHub in depth GitHub 高级玩法 / 进阶教程 https://github.com/trending/dart?since=daily https://github.com/t ...

  8. Next.js Conf 2020

    Next.js Conf 2020 Next.js Conf Ticket https://nextjs.org/conf Conf Schedule https://confs.tech/javas ...

  9. browser parse CSS style order

    browser parse CSS style order 浏览器解析 CSS style 的顺序 从右到左 https://juejin.im/entry/5a123c55f265da432240c ...

  10. js replace all

    js replace all https://stackoverflow.com/questions/1144783/how-can-i-replace-all-occurrences-of-a-st ...