随着代理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爬取微博数据相关推荐

  1. 爬虫实例:正则表达式爬取微博热搜榜

    最近在学习python的爬虫知识,分享一个爬取微博热搜的实例,代码很简单. 用到了requests,re,xlwt库 直接看图: #1导入模块 import requests import re im ...

  2. 【网络爬虫】【java】微博爬虫(一):小试牛刀——网易微博爬虫(自定义关键字爬取微博数据)(附软件源码)...

    一.写在前面 (本专栏分为"java版微博爬虫"和"python版网络爬虫"两个项目,系列里所有文章将基于这两个项目讲解,项目完整源码已经整理到我的Github ...

  3. jsoup爬虫技术及爬取微博数据实例

    最近实现了一个爬取微博数据的小程序,借此对爬虫技术 jsoup的使用,以及实际开发过程中的细节进行总结. jsoup的jar包下载地址:https://jsoup.org/download 首先,对于 ...

  4. 利用Ajax爬取今日头条头像,街拍图片。关于崔庆才python爬虫爬取今日头条街拍内容遇到的问题的解决办法。

    我也是初学爬虫,在看到崔庆才大佬的爬虫实战:爬取今日头条街拍美图时,发现有些内容过于陈旧运行程序时已经报错,网页的源代码早已不一样了.以下是我遇到的一些问题. 1.用开发者选项筛选Ajax文件时预览看 ...

  5. python爬虫——使用selenium爬取微博数据(一)

    python爬虫--使用selenium爬取微博数据(二) 写在前面 之前因为在组里做和nlp相关的项目,需要自己构建数据集,采用selenium爬取了几十万条微博数据,学习了很多,想在这里分享一下如 ...

  6. 编程python爬取网页数据教程_实例讲解Python爬取网页数据

    一.利用webbrowser.open()打开一个网站: >>> import webbrowser >>> webbrowser.open('http://i.f ...

  7. python爬取微博数据词云_用Python爬取微博数据生成词云图片

    原标题:用Python爬取微博数据生成词云图片 欢迎关注天善智能 hellobi.com,我们是专注于商业智能BI,大数据,数据分析领域的垂直社区,学习.问答.求职,一站式搞定! 对商业智能BI.大数 ...

  8. 利用beautifulsoup爬取微博搜素朋友圈背景图

    利用beautifulsoup爬取微博搜素"朋友圈背景图" 微博搜索:朋友圈背景图 1.首先先导入库 requests是用来请求返回网页源代码所需要的请求库,etree和beaut ...

  9. 利用python爬取股票交易数据

    利用python爬取股票交易数据 分析网站 找到返回的url url = https://xueqiu.com/service/v5/stock/screener/quote/list?page={p ...

最新文章

  1. Java compiler level does not match the version of the installed Java project facet.
  2. matlab语言unique,Matlab的unique函数的C++实现
  3. FPGA逻辑设计回顾(9)DDR的前世今生以及演变过程中的技术差异
  4. JavaScript比较中应使用哪个等于运算符(== vs ===)?
  5. gitstack连接詹金斯_詹金斯的Maven报告
  6. i.e.、e.g.、etc.都是什么英文的缩写?
  7. mysql deadlock found when trying to get lock暴力解决
  8. 利用Conda尝鲜Python 3.10
  9. 周华健,歌声伴我成长(四)
  10. 【WPF】WPF中调用Winform
  11. 怎么创建PHP函数,如何创建 PHP 函数
  12. 惠普打印机突然停止工作
  13. Java学习笔记——十大经典排序算法总结
  14. HowToDoIt 开源框架爱好者组织发布第一份项目总结
  15. android 7.0 漏洞利用,谷歌 Android 移动操作系统中的零日漏洞被攻击者利用
  16. OpenGL:gl_ClipDistance和gl_CullDiatance
  17. 手机安全卫士的一些总结
  18. linux上的社交软件,瞧瞧社交app-瞧瞧下载v1.6.0-Linux公社
  19. windows10如何修改hosts文件,微软官方回复,博主亲测有效
  20. Java语言程序设计与数据结构(基础篇)梁勇第九章 *9.3

热门文章

  1. 机器学习分类常见评价标准
  2. 封印者服务器未响应,封印者能组队吗?多人好友组队未响应怎么办?
  3. php 同步代码,PHP进程同步代码实例_PHP
  4. OFD文件转换成PDF格式,Java语言实现
  5. hbase 2.1 环境搭建--独立模式 Standalone Mode
  6. 原始复古的forfiles的使用(win平台)
  7. 小米12Pro和小米MIX4哪个好
  8. Web3的“陨落”,西下与东升
  9. 文本数据可视化_非结构化文本数据的分析和可视化
  10. eclipse的jmr code generator插件