爬虫实例 利用Ajax爬取微博数据
随着代理IP技术的普及,爬虫的使用也变得简单起来,许多企业和个人都开始用爬虫技术来抓取数据。那么今天就来分享一个爬虫实例,帮助你们更好的理解爬虫。下面我们用程序模拟Ajax请求,将我的前10页微博全部爬取下来。
首先,定义一个方法来获取每次请求的结果。在请求时,page是一个可变参数,所以我们将它作为方法的参数传递进来,相关代码如下:
首先,这里定义了base_url来表示请求的URL的前半部分。接下来,构造参数字典,其中type、value和containerid是固定参数,page是可变参数。接下来,调用urlencode()方法将参数转化为URL的GET请求参数,即类似于type=uid&value=2830678474&containerid=1076032830678474&page=2这样的形式。随后,base_url与参数拼合形成一个新的URL。接着,我们用requests请求这个链接,加入headers参数。然后判断响应的状态码,如果是200,则直接调用json()方法将内容解析为JSON返回,否则不返回任何信息。如果出现异常,则捕获并输出其异常信息。
随后,我们需要定义一个解析方法,用来从结果中提取想要的信息,比如这次想保存微博的id、正文、赞数、评论数和转发数这几个内容,那么可以先遍历cards,然后获取mblog中的各个信息,赋值为一个新的字典返回即可:
这里我们借助pyquery将正文中的HTML标签去掉。
最后,遍历一下page,一共10页,将提取到的结果打印输出即可:
另外,我们还可以加一个方法将结果保存到MongoDB数据库:
这样所有功能就实现完成了。运行程序后,样例输出结果如下:
查看一下MongoDB,相应的数据也被保存到MongoDB,如下图所示。
这样,我们就顺利通过分析Ajax并编写爬虫爬取下来了微博列表。通过这个实例,我们主要学会了怎样去分析Ajax请求,怎样用程序来模拟抓取Ajax请求。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/31561225/viewspace-2284528/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/31561225/viewspace-2284528/
爬虫实例 利用Ajax爬取微博数据相关推荐
- 爬虫实例:正则表达式爬取微博热搜榜
最近在学习python的爬虫知识,分享一个爬取微博热搜的实例,代码很简单. 用到了requests,re,xlwt库 直接看图: #1导入模块 import requests import re im ...
- 【网络爬虫】【java】微博爬虫(一):小试牛刀——网易微博爬虫(自定义关键字爬取微博数据)(附软件源码)...
一.写在前面 (本专栏分为"java版微博爬虫"和"python版网络爬虫"两个项目,系列里所有文章将基于这两个项目讲解,项目完整源码已经整理到我的Github ...
- jsoup爬虫技术及爬取微博数据实例
最近实现了一个爬取微博数据的小程序,借此对爬虫技术 jsoup的使用,以及实际开发过程中的细节进行总结. jsoup的jar包下载地址:https://jsoup.org/download 首先,对于 ...
- 利用Ajax爬取今日头条头像,街拍图片。关于崔庆才python爬虫爬取今日头条街拍内容遇到的问题的解决办法。
我也是初学爬虫,在看到崔庆才大佬的爬虫实战:爬取今日头条街拍美图时,发现有些内容过于陈旧运行程序时已经报错,网页的源代码早已不一样了.以下是我遇到的一些问题. 1.用开发者选项筛选Ajax文件时预览看 ...
- python爬虫——使用selenium爬取微博数据(一)
python爬虫--使用selenium爬取微博数据(二) 写在前面 之前因为在组里做和nlp相关的项目,需要自己构建数据集,采用selenium爬取了几十万条微博数据,学习了很多,想在这里分享一下如 ...
- 编程python爬取网页数据教程_实例讲解Python爬取网页数据
一.利用webbrowser.open()打开一个网站: >>> import webbrowser >>> webbrowser.open('http://i.f ...
- python爬取微博数据词云_用Python爬取微博数据生成词云图片
原标题:用Python爬取微博数据生成词云图片 欢迎关注天善智能 hellobi.com,我们是专注于商业智能BI,大数据,数据分析领域的垂直社区,学习.问答.求职,一站式搞定! 对商业智能BI.大数 ...
- 利用beautifulsoup爬取微博搜素朋友圈背景图
利用beautifulsoup爬取微博搜素"朋友圈背景图" 微博搜索:朋友圈背景图 1.首先先导入库 requests是用来请求返回网页源代码所需要的请求库,etree和beaut ...
- 利用python爬取股票交易数据
利用python爬取股票交易数据 分析网站 找到返回的url url = https://xueqiu.com/service/v5/stock/screener/quote/list?page={p ...
最新文章
- Java compiler level does not match the version of the installed Java project facet.
- matlab语言unique,Matlab的unique函数的C++实现
- FPGA逻辑设计回顾(9)DDR的前世今生以及演变过程中的技术差异
- JavaScript比较中应使用哪个等于运算符(== vs ===)?
- gitstack连接詹金斯_詹金斯的Maven报告
- i.e.、e.g.、etc.都是什么英文的缩写?
- mysql deadlock found when trying to get lock暴力解决
- 利用Conda尝鲜Python 3.10
- 周华健,歌声伴我成长(四)
- 【WPF】WPF中调用Winform
- 怎么创建PHP函数,如何创建 PHP 函数
- 惠普打印机突然停止工作
- Java学习笔记——十大经典排序算法总结
- HowToDoIt 开源框架爱好者组织发布第一份项目总结
- android 7.0 漏洞利用,谷歌 Android 移动操作系统中的零日漏洞被攻击者利用
- OpenGL:gl_ClipDistance和gl_CullDiatance
- 手机安全卫士的一些总结
- linux上的社交软件,瞧瞧社交app-瞧瞧下载v1.6.0-Linux公社
- windows10如何修改hosts文件,微软官方回复,博主亲测有效
- Java语言程序设计与数据结构(基础篇)梁勇第九章 *9.3
热门文章
- 机器学习分类常见评价标准
- 封印者服务器未响应,封印者能组队吗?多人好友组队未响应怎么办?
- php 同步代码,PHP进程同步代码实例_PHP
- OFD文件转换成PDF格式,Java语言实现
- hbase 2.1 环境搭建--独立模式 Standalone Mode
- 原始复古的forfiles的使用(win平台)
- 小米12Pro和小米MIX4哪个好
- Web3的“陨落”,西下与东升
- 文本数据可视化_非结构化文本数据的分析和可视化
- eclipse的jmr code generator插件