python网络数据爬取及分析_《Python网络数据采集》读后总结--第3章开始爬取数据及天善用户关系分析实例...
这次介绍一下《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章开始爬取数据及天善用户关系分析实例...相关推荐
- dwz怎么使用数据加载中提示_百度地图数据采集手把手教,从此POI数据不再是愁...
本文介绍使用八爪鱼采集百度地图数据(以上海-建设银行为例)的方法 采集网站:http://map.baidu.com/ 适用版本:八爪鱼7版本,8版本请参照官网新手入门教程制作 8版本新手入门教程:用 ...
- python爬取论坛图片_[python爬虫] Selenium定向爬取虎扑篮球海量精美图片
前言: 作为一名从小就看篮球的球迷,会经常逛虎扑篮球及湿乎乎等论坛,在论坛里面会存在很多精美图片,包括NBA球队.CBA明星.花边新闻.球鞋美女等等,如果一张张右键另存为的话真是手都点疼了.作为程序员 ...
- python爬虫爬取公众号_[Python]爬取微信公众号文章
[Python] 纯文本查看 复制代码import sys reload(sys) sys.setdefaultencoding('utf-8') from urllib import quote f ...
- python简单爬虫程序分析_[Python专题学习]-python开发简单爬虫
掌握开发轻量级爬虫,这里的案例是不需要登录的静态网页抓取.涉及爬虫简介.简单爬虫架构.URL管理器.网页下载器(urllib2).网页解析器(BeautifulSoup) 一.爬虫简介以及爬虫的技术价 ...
- python词云需要导入什么包_[python] 词云:wordcloud包的安装、使用、原理(源码分析)、中文词云生成、代码重写...
词云,又称文字云.标签云,是对文本数据中出现频率较高的"关键词"在视觉上的突出呈现,形成关键词的渲染形成类似云一样的彩色图片,从而一眼就可以领略文本数据的主要表达意思.常见于博客. ...
- python生成中文词云的代码_[python] 基于词云的关键词提取:wordcloud的使用、源码分析、中文词云生成和代码重写...
1. 词云简介 词云,又称文字云.标签云,是对文本数据中出现频率较高的"关键词"在视觉上的突出呈现,形成关键词的渲染形成类似云一样的彩色图片,从而一眼就可以领略文本数据的主要表达意 ...
- 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 ...
- 51cto python数据分析系列课程 55g_热图_ Python数据分析系列视频课程--玩转数据可视化_数据可视化视频-51CTO学院...
matplotlib包是基于Python平台的统计绘图利器,是在python平台上完成数据可视化不可或缺的工具,而基于matplotlib进一步开发的seaborn,更是将数据呈现与可视化的可用性推到 ...
- python实现文件上传和下载_[Python] socket实现TFTP上传和下载
一.说明 本文主要基于socket实现TFTP文件上传与下载. 测试环境:Win10/Python3.5/tftpd64. tftpd下载:根据自己的环境选择下载,地址 :http://tftpd32 ...
最新文章
- 有符号二进制数的乘法
- java mytable_Mybatis-Plus之@TableField字段
- Python基础入门:正则re.sub使用自定义替换方法
- 未来教育计算机二级为什么分数很低,计算机二级考试失分了却不知道为什么?...
- HBae找不到协处理器导致RegionServer全部挂掉
- Flume案例Ganglia监控
- c语言几千行代码图片,【图片】发几个C语言课程设计源代码(恭喜自己当上技术小吧主)【东华理工大学吧】_百度贴吧...
- 2的负x次幂图像_数学| NO.2,3函数 T51
- 2021-05-17 吾日三省吾身
- 节理玫瑰花图怎么画_什么软件能便捷地绘制出节理玫瑰花图、水系玫瑰花图?...
- 公众号基本的绑定手机号页面(截取code,手机号正则,验证码倒计时)
- es文件创建局域网服务器,es文件浏览器局域网连接win10电脑怎么设置
- 7z文件格式及其源码的分析(三)
- Linux内核notifier机制通知链
- 恋与制作人 服务器错误,恋与制作人登陆不了怎么办 登录失败无法登录DNS劫持全解析...
- Java朗致集团面试题
- 微分方程一维抛物热传导方程向前向后欧拉C-N格式二阶BDF格式MATLAB源码 显式欧拉,隐式欧拉,梯形公式,改进欧拉
- 代号X8,小度智能屏的破壁行动
- 在打造 iPod 和 Nest 之后,这位被硅谷抛弃的「麻烦制造者」正在巴黎重建浪潮之巅
- Mahout之Taste Webapp实战
热门文章
- 【蒸馏+剪枝】(一)Cascaded channel pruning using hierarchical self-distillation
- arm开发板采用ubuntu根文件系统自动挂载U盘解决方案升级版!
- 车行易携手睿象云:告警管理体系全升级
- go语言快速学习指南
- 【Detectron2】详解Detectron2中Mask RCNN的部分代码
- 污水泵站远程智能化监控系统
- 关于Sybase中char和varchar的空格填充问题
- 浅谈红外线与红外气体分析技术
- 基于Java毕业设计智慧门诊综合管理系统源码+系统+mysql+lw文档+部署软件
- windows phone真正解决方案:无法启动调试--未安装 Silverlight Developer 运行时。请安装一个匹配版本。