手头有个项目,其中有个功能是爬取一个指定页面的所有链接地址,返回一个lists。我现在分享出来。
var tag = document.querySelectorAll("a");
var myarray = []
for (var i = 0; i < tag.length; i++) {
var nametext = tag[i].textContent;
var cleantext = nametext.replace(/\s+/g, ' ').trim();
var cleanlink = tag[i].href;
myarray.push([cleantext, cleanlink]);
};
function generateJson() {
var hrefArray = [];
for (var i = 0; i < myarray.length; i++) {
let t = {}
t.n = myarray[i][0]; t.m = myarray[i][1];
hrefArray.push(t);
};
var win = window.open("Json");
win.document.write(JSON.stringify(hrefArray));
}
generateJson()
测试步骤:
屏幕截图
大家看完这篇文章有什么想法, 评论区多多交流!
在越来越多的应用和互联网产品做内容的聚合,像、等等,太多的聚合应用以及不胜枚举,甚至浏览器也可以嵌入聚合的应用。
互联网上拥有太多太多的数据,抓取网页的数据做数据挖掘也是最廉价的获取数据的途径,解析数据是得到规则数据的方法,他为后面数据挖掘、机器学习模型的学习提供支持。
在获取互联网数据的过程中,不可避免的就要使用到网页爬虫技术,此外在抓取下来的网页,需要进一步的解析出自己想要的内容。正则表达式是最常用的解析工具,针对网页目前有个非常便捷的框架,叫做BeautifulSoup。本文使用的是BeautifulSoup 3,现在已经有BeautifulSoup4了,名字改为bs4
(1)下载与安装
# BeautifulSoup 的下载与安装
pip install BeautifulSoup
另外也可以下载安装包进行安装
(2)快速开始
# BeautifulSoup 快速开始
html_doc = urllib2.urlopen('http://baike.baidu.com/view/1059363.htm')
soup = BeautifulSoup(html_doc)
print soup.title
结果:
# BeautifulSoup 结果
<title>前门大街_百度百科</title>
(3)BeautifulSoup对象介绍
BeautifulSoup中主要包含三种类型的对象:
BeautifulSoup.BeautifulSoup
BeautifulSoup.Tag
BeautifulSoup.NavigableString
通过下面例子来认识上面的三种数据类型:
# BeautifulSoup 示例
from BeautifulSoup import BeautifulSoup
import urllib2
html_doc = urllib2.urlopen('http://www.baidu.com')
soup = BeautifulSoup(html_doc)
print type(soup)
print type(soup.title)
print type(soup.title.string)
print soup.title
print soup.title.string
结果为
# BeautifulSoup 示例结果
<class 'BeautifulSoup.BeautifulSoup'>
<class 'BeautifulSoup.Tag'>
<class 'BeautifulSoup.NavigableString'>
<title>百度一下,你就知道</title>
百度一下,你就知道
print soup.title
print soup.title.string
从上面的例子可以比较清晰的看到BeautifulSoup主要包括三种类型的对象。
BeautifulSoup.BeautifulSoup //BeautifulSoup对象
BeautifulSoup.Tag //标签对象
BeautifulSoup.NavigableString //导航string文本对象
(4)BeautifulSoup剖析树
1. BeautifulSoup.Tag对象方法
获取标记对象,通过点号获取Tag对象
# BeautifulSoup 示例
title = soup.title
print type(title.contents)
print title.contents
print title.contents[0]
# BeautifulSoup 示例结果
<type 'list'>
[u'\u767e\u5ea6\u4e00\u4e0b\uff0c\u4f60\u5c31\u77e5\u9053']
百度一下,你就知道
contents方法
获得当前标签的内容list,如果该标签没有子标签,那么string方法和contents[0]得到的内容是一样的。见上面示例
next,parent方法
获得当前的标签的子标签和父标签
# BeautifulSoup 示例
html = soup.html
print html.next
print ''
print html.next.next
print html.next.next.nextSibling
# BeautifulSoup 示例结果
<head><meta http-equiv="content-type" content="text/html;charset=utf-8" /><meta http-equiv="X-UA-Compatible"content="IE=Edge" /><meta content="always" name="referrer" /><meta name="theme-color" content="#2932e1" /><link rel="shortcut icon" href="/favicon.ico" type="image/x-icon" /><link rel="icon" sizes="any" mask="mask" href="//www.baidu.com/img/baidu.svg" /><link rel="dns-prefetch" href="//s1.bdstatic.com" /><link rel="dns-prefetch" href="//t1.baidu.com" /><link rel="dns-prefetch" href="//t2.baidu.com" /><link rel="dns-prefetch" href="//t3.baidu.com" /><link rel="dns-prefetch" href="//t10.baidu.com" /><link rel="dns-prefetch" href="//t11.baidu.com" /><link rel="dns-prefetch" href="//t12.baidu.com" /><link rel="dns-prefetch" href="//b1.bdstatic.com" /><title>百度一下,你就知道</title>
......
</head>
<meta http-equiv="content-type" content="text/html;charset=utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=Edge" />
nextSibling,previousSibling
获得当前标签的下一个兄弟标签和前一个兄弟标签
对不同的网页,将你需要的标签中的数据,例如评论、阅读量、购买量、价格、数量等等,通过BS解析获得。解析是数据获取整理过程中不可少的一部分。
进一步的,借助机器学习模型对上述数据进行建模分析,得到一定的结论。
机器学习第四发:机器学习基础
机器学习第三发:入门书籍及网络课程
机器学习第二发:支持向量机
机器学习第一发:逻辑回归
欲善其事必先利其器,好的工具能够提高工作效率。现在网上有很多实用的小工具,可以帮助你解决工作中的小问题。下面就一一分享给大家。
1、汉字拼音在线转换
(https://www.qqxiuzi.cn/zh/pinyin/)
网站支持文字转成拼音大小写,首字母大写、句首大写、标注声调等等。对于不熟悉拼音,常用五笔来打字的人来说,转换出正确的拼音很让人头痛,这个在线网站帮你解决。也能解决普通话不标准的一些家长的困惑,在辅导孩子写语文作业的时候,不知道拼音怎么标注声调。
2、在线英文字母大小写转换
(https://www.iamwawa.cn/daxiaoxie.html)
网站支持字母全大写、全小写、首字母大写、首字母大写、空格转下划线等等,都是很实用的编辑功能,网站还有很多实用的功能,需要的可以自行解锁。
3、二维码图片转矢量
(http://www.zhangqu.org/?page_id=359)
做设计的时候会遇到把二维码转换成矢量的时候,如果用PS或者AI转出来的都不是很好,对于原始文件像素不高的很难解决,这个网站转换出来的就很好,可以直接使用。但是面对特殊的圆形二维码或者其他的识别度都行,网站只能转出方形的二维码。
4、在线书法字转换
(http://www.ziticq.com/Shufa)
这是一个很好的在线书法字转换网站,你可以选择你喜欢的字进行组合。网站提供158,592 幅书法作品中出现的字,可以存svg, png, pdf格式的文件,适用Ai、Ps等软件。
5、人民币大写在线转换
(https://www.917118.com/tool/rmb.html)
这个网站主要是人民币大写的转换、计算机颜色在线查询工具,我主要用在财务报销的时候,填写报销单需要用到人民币的大写。
6、在线修改照片
(https://www.gaitubao.com/)
网站可以在线修改图片像素及尺寸、裁剪、压缩文件大小,对于一些从事文案工作的人来说是个好帮手,可以解决一些问题,不用打开专业的软件去操作,效率低。
这次就分享这些实用的工具网站给大家,欢迎在评论区留言分享你的实用工具,点赞和评论是对我最大的鼓励支持,谢谢大家。
*请认真填写需求信息,我们会在24小时内与您取得联系。