Ajax数据爬取--爬取微博
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数据爬取--爬取微博的更多相关文章
- 爬虫—Ajax数据爬取
一.什么是Ajax 有时候我们使用浏览器查看页面正常显示的数据与使用requests抓取页面得到的数据不一致,这是因为requests获取的是原始的HTML文档,而浏览器中的页面是经过JavaScri ...
- Ajax数据的爬取(淘女郎为例)
mmtao Ajax数据的爬取(淘女郎为例) 如有疑问,转到 Wiki 淘女郎模特抓取教程 网址:https://0x9.me/xrh6z 判断一个页面是不是 Ajax 加载的方法: 查看网页源代码, ...
- Ajax数据爬取
Ajax的基本原理 以菜鸟教程的代码为例: XMLHTTPRequest对象是JS对Ajax的底层实现: var xmlhttp; if (window.XMLHttpRequest) { // IE ...
- 爬虫(十):AJAX、爬取AJAX数据
1. AJAX 1.1 什么是AJAX AJAX即“Asynchronous JavaScript And XML”(异步JavaScript和XML)可以使网页实现异步更新,就是不重新加载整个网页的 ...
- scrapy过滤重复数据和增量爬取
原文链接 前言 这篇笔记基于上上篇笔记的---<scrapy电影天堂实战(二)创建爬虫项目>,而这篇又涉及redis,所以又先熟悉了下redis,记录了下<redis基础笔记> ...
- php外挂python脚本抓取ajax数据
之前我写过一遍php外挂python脚本处理视频的文章.今天和大家分享下php外挂python实现输入关键字搜索的脚本 首先我们先来分析一波网站: http://www.dzdpw.com/s.php ...
- python反反爬,爬取猫眼评分
python反反爬,爬取猫眼评分.解决网站爬取时,内容类似:$#x12E0;样式,且每次字体文件变化.下载FontCreator . 用FontCreator打开base.woff.查看对应字体关系 ...
- python实现列表页数据的批量抓取练手练手的
python实现列表页数据的批量抓取,练手的,下回带分页的 #!/usr/bin/env python # coding=utf-8 import requests from bs4 import B ...
- python爬虫之分析Ajax请求抓取抓取今日头条街拍美图(七)
python爬虫之分析Ajax请求抓取抓取今日头条街拍美图 一.分析网站 1.进入浏览器,搜索今日头条,在搜索栏搜索街拍,然后选择图集这一栏. 2.按F12打开开发者工具,刷新网页,这时网页回弹到综合 ...
随机推荐
- spring-cloud-netflix-eureka-client
服务注册中心eureka-server已经搭好,我们开始编写一个eureka-client,并提供一个hello服务 一.新建module,选择对应的springcloud模块,pom.xml如下: ...
- FZU 2129 子序列个数(DP)题解
题意:求子序列种数 思路:dp[i]代表到i的所有种数,把当前i放到末尾,那么转移方程dp[i] = dp[i - 1] + dp[i -1],但是可能存在重复,比如1 2 3 2,在第2位置的时候出 ...
- PHP7.1后webshell免杀
严格的D盾 D盾说,我是个严格的人,看到eval我就报木马,"看着像"="就是"木马,宁可错杀一千,绝不放过一个.好了,多说无益,一起看看严格的D盾是如何错杀的 ...
- 【Alpaca】.Net版开源配置中心 - 技术选型 Vue 3.0
是否可以用 Vue 3.0 现有的Vue 2.* 不推荐,坐等Vue 3.0出迁移工具吧,手动改的话工作量还是不小的 新项目 考虑下团队内对Vue + TS + VS Code的熟练程度.过程中你会遇 ...
- how to enable vue cli auto open the localhost url
how to enable vue cli auto open the localhost URL bad you must click the link by manually, waste of ...
- 十大排序算法时间复杂度 All In One
十大排序算法时间复杂度 All In One 排序算法时间复杂度 排序算法对比 Big O O(n) O(n*log(n)) O(n^2) 冒泡排序 选择排序 插入排序 快速排序 归并排序 基数排序 ...
- Flutter 1.17.x
Flutter 1.17.x Flutter (Channel stable, v1.17.3, on Mac OS X 10.15.5 19F101, locale en-CN) https://f ...
- div & drop
div & drop uplaod file & prevent dropleave https://www.runoob.com/jsref/event-ondrop.html ht ...
- Flutter: SearchDelegate 委托showSearch定义搜索页面的内容
API class _MyHomeState extends State<MyHome> { List<String> _list = List.generate(100, ( ...
- PAA房产智慧社区:解决社区管理服务的痛点难点
社区,是社交与生活的舞台,更是家的延伸.社区之所有能够有所创新发展,得益于借助数字化和智能化.智能化给社区带来的便利体现在社区门禁可以人脸识别:AI的摄像头可以自动捕获异常的现象,便于社区管理员第一时 ...