这次介绍一下《Python网络数据采集》这本书的第3章内容(Chpt03.开始爬数据的内容),

使用了天善用户关系分析的示例来介绍一下具体实践。

1.第3章内容简介

1-getWikiLinks.py

2-crawlWikipedia.py

3-crawlSite.py

4-getExternalLinks.py

5-getAllExternalLinks.py

主要介绍了如何使用深度遍历的方法,访问所有链接到的页面。

实现的代码类似如下:

allIntLinks = set()

def getAllExternalLinks(siteUrl):

try:

html = urlopen(siteUrl)

domain = urlparse(siteUrl).scheme+"://"+urlparse(siteUrl).netloc

bsObj = BeautifulSoup(html,"html.parser")

internalLinks = getInternalLinks(bsObj,domain)

for link in internalLinks:

if link not in allIntLinks :

allIntLinks.add(link)

getAllExternalLinks(link) #递归实现深度遍历

except:

#print(e)

return None

这种只是一个功能实现的演示啊,实际情况递归是有大小限制的。

具体的代码大家可以看sample.

2.总结的一些有用的功能

#有用的函数

#1.urlparse

#2.unquote

#3.urljoin

3.天善用户关系的数据抓取

目的:获取和某个用户有关联的有多些用户

原理:

http://www.flybi.net/people/用户名,可以查询前26个有关注的用户,不是全部用户,这是个问题,不过由于关注和被关注有2份数据,可以部分弥补,不过和结果还是有偏差。

具体实现(具体看附件的ipynb):

#1.从起始页开始读取所有人员列表页 (使用深度遍历方法)

getallPeopleCatlog('http://www.flybi.net/people/page-1','\/people\/page-*')

#2.根据所有人员列表页,读出所有人员

for link in allPeopleCatlogLists:

getallPeople(link,'\/people/*')

#3.遍历所有人,读出对应关系

for link in allPeopleLists:

try:

csvFile = open("/pythontest/testscript/allPeopleLinks.csv", 'a', newline='', encoding='utf-8')

writer = csv.writer(csvFile)

allPeopleLinks(link,'\/people/*',writer)

finally:

csvFile.close()

结果分析:

前几位大大太厉害了,关系网太密切了,去掉了前十的图也给了一张,大家看看。

所有用户:

去掉前10(按用户名对应):

附件:

python网络数据爬取及分析_《Python网络数据采集》读后总结--第3章开始爬取数据及天善用户关系分析实例...相关推荐

  1. dwz怎么使用数据加载中提示_百度地图数据采集手把手教,从此POI数据不再是愁...

    本文介绍使用八爪鱼采集百度地图数据(以上海-建设银行为例)的方法 采集网站:http://map.baidu.com/ 适用版本:八爪鱼7版本,8版本请参照官网新手入门教程制作 8版本新手入门教程:用 ...

  2. python爬取论坛图片_[python爬虫] Selenium定向爬取虎扑篮球海量精美图片

    前言: 作为一名从小就看篮球的球迷,会经常逛虎扑篮球及湿乎乎等论坛,在论坛里面会存在很多精美图片,包括NBA球队.CBA明星.花边新闻.球鞋美女等等,如果一张张右键另存为的话真是手都点疼了.作为程序员 ...

  3. python爬虫爬取公众号_[Python]爬取微信公众号文章

    [Python] 纯文本查看 复制代码import sys reload(sys) sys.setdefaultencoding('utf-8') from urllib import quote f ...

  4. python简单爬虫程序分析_[Python专题学习]-python开发简单爬虫

    掌握开发轻量级爬虫,这里的案例是不需要登录的静态网页抓取.涉及爬虫简介.简单爬虫架构.URL管理器.网页下载器(urllib2).网页解析器(BeautifulSoup) 一.爬虫简介以及爬虫的技术价 ...

  5. python词云需要导入什么包_[python] 词云:wordcloud包的安装、使用、原理(源码分析)、中文词云生成、代码重写...

    词云,又称文字云.标签云,是对文本数据中出现频率较高的"关键词"在视觉上的突出呈现,形成关键词的渲染形成类似云一样的彩色图片,从而一眼就可以领略文本数据的主要表达意思.常见于博客. ...

  6. python生成中文词云的代码_[python] 基于词云的关键词提取:wordcloud的使用、源码分析、中文词云生成和代码重写...

    1. 词云简介 词云,又称文字云.标签云,是对文本数据中出现频率较高的"关键词"在视觉上的突出呈现,形成关键词的渲染形成类似云一样的彩色图片,从而一眼就可以领略文本数据的主要表达意 ...

  7. python怎么取百位_#python计算结果百位500向下取整,(0-499取000,500-999取500)

    !/usr/bin/env python coding:utf-8 计算结果百位500向下取整,(0-499取000,500-999取500) import math calc_Amount = fl ...

  8. 51cto python数据分析系列课程 55g_热图_ Python数据分析系列视频课程--玩转数据可视化_数据可视化视频-51CTO学院...

    matplotlib包是基于Python平台的统计绘图利器,是在python平台上完成数据可视化不可或缺的工具,而基于matplotlib进一步开发的seaborn,更是将数据呈现与可视化的可用性推到 ...

  9. python实现文件上传和下载_[Python] socket实现TFTP上传和下载

    一.说明 本文主要基于socket实现TFTP文件上传与下载. 测试环境:Win10/Python3.5/tftpd64. tftpd下载:根据自己的环境选择下载,地址 :http://tftpd32 ...

最新文章

  1. 有符号二进制数的乘法
  2. java mytable_Mybatis-Plus之@TableField字段
  3. Python基础入门:正则re.sub使用自定义替换方法
  4. 未来教育计算机二级为什么分数很低,计算机二级考试失分了却不知道为什么?...
  5. HBae找不到协处理器导致RegionServer全部挂掉
  6. Flume案例Ganglia监控
  7. c语言几千行代码图片,【图片】发几个C语言课程设计源代码(恭喜自己当上技术小吧主)【东华理工大学吧】_百度贴吧...
  8. 2的负x次幂图像_数学| NO.2,3函数 T51
  9. 2021-05-17 吾日三省吾身
  10. 节理玫瑰花图怎么画_什么软件能便捷地绘制出节理玫瑰花图、水系玫瑰花图?...
  11. 公众号基本的绑定手机号页面(截取code,手机号正则,验证码倒计时)
  12. es文件创建局域网服务器,es文件浏览器局域网连接win10电脑怎么设置
  13. 7z文件格式及其源码的分析(三)
  14. Linux内核notifier机制通知链
  15. 恋与制作人 服务器错误,恋与制作人登陆不了怎么办 登录失败无法登录DNS劫持全解析...
  16. Java朗致集团面试题
  17. 微分方程一维抛物热传导方程向前向后欧拉C-N格式二阶BDF格式MATLAB源码 显式欧拉,隐式欧拉,梯形公式,改进欧拉
  18. 代号X8,小度智能屏的破壁行动
  19. 在打造 iPod 和 Nest 之后,这位被硅谷抛弃的「麻烦制造者」正在巴黎重建浪潮之巅
  20. Mahout之Taste Webapp实战

热门文章

  1. 【蒸馏+剪枝】(一)Cascaded channel pruning using hierarchical self-distillation
  2. arm开发板采用ubuntu根文件系统自动挂载U盘解决方案升级版!
  3. 车行易携手睿象云:告警管理体系全升级
  4. go语言快速学习指南
  5. 【Detectron2】详解Detectron2中Mask RCNN的部分代码
  6. 污水泵站远程智能化监控系统
  7. 关于Sybase中char和varchar的空格填充问题
  8. 浅谈红外线与红外气体分析技术
  9. 基于Java毕业设计智慧门诊综合管理系统源码+系统+mysql+lw文档+部署软件
  10. windows phone真正解决方案:无法启动调试--未安装 Silverlight Developer 运行时。请安装一个匹配版本。