回享预备班:[6]分享杂志的发布步骤,加入回享计划成了签约作者后,除了写分享之外我们还可以采编杂志。杂志跟系列分享的功能相差不多,在我看来要比系列分享更具优点。杂志可以看作更简单直接明了的系列分享。我......
2023-03-19 369 百度经验
百度经验越写越多,达到上百篇。如果要我一篇一篇的整理,无疑是一个很大的工作量。
下面,我就用Mathematica写一个网络爬虫,来爬取这些百度经验文章的标题以及对应的目录。
写爬虫,需要有网络支持,所以必须保证网路畅通。
进入自己的百度经验个人中心。
注意看网页的网址,复制到粘贴板里面。
打开Mathematica,
把上述网址粘贴到引号里面,并命名为url;
然后用代码读取相应网页的html代码:
URLRead[url, "Body"]
html代码是以字符串的形式返回的,很长很长的一大篇。
在网页里面,选择一个标题,用右键审查元素,可以查看相应标题在上面html代码里面的位置,其中包括文章标题和这篇文章的超链接。
从html代码里面匹配出网页里面所有标题,就得用Mathematica了:
标题=StringCases[URLRead[url, "Body"], ".html\" title=\"" ~~ Shortest[x__] ~~ "\"" :> x] ;
每一页只显示7个标题,所以,Mathematica也只能爬取7个标题。
然后从html代码里面,把文章的链接后半部分爬取出来。
pls=StringCases[URLRead[url, "Body"], "a href=\"/article/" ~~ Shortest[x__] ~~ "\" title=" :> x] ;Drop[pls, {2, -1, 2}] //Column
由于html代码里面只显示了文章链接的后半部分,所以,我们先把这部分提取出来。
不同的文章链接,它们的前半部分是相同的,因此,我们只需要拼接字符串,就可以得到完整的链接:
网址 = (StringJoin["……", #] & /@ Drop[pls, {2, -1, 2}]); 网址//Column
其中,……表示的是,链接的前半部分,包括反斜杠。
这样,我们就得到一个表格,其中标题和链接一一对应。
Grid[Transpose[{标题,网址}],Frame->All]
一页一页的爬取,实在是不值得使用爬虫,直接复制粘贴就好了。
然而,百度经验网页,每一页都有7篇,而目前我的百度经验,一共有89页。
爬虫需要自动爬取这所有的标题,才靠谱。
所以,要对每一页执行这些操作,就必须先获得每一页的网址:
观察发现,不同页的网址基本相同,只有最后面的页数差异:
第一页是0,第二页是7,第三页是……
所以,只需要拼接上一个数字就可以了:
全部页面= StringJoin["……………………", ToString@#] & /@ Range[0, 7*89, 7];
下图里面的Mathematica代码,爬取了前10页的标题和链接,并整理成为表格的形式。
运行之后,得到一个很大的表格,这里只能截图一部分。
以上方法由办公区教程网编辑摘抄自百度经验可供大家参考!
标签: 百度经验
相关文章
回享预备班:[6]分享杂志的发布步骤,加入回享计划成了签约作者后,除了写分享之外我们还可以采编杂志。杂志跟系列分享的功能相差不多,在我看来要比系列分享更具优点。杂志可以看作更简单直接明了的系列分享。我......
2023-03-19 369 百度经验