python学习|【python爬虫】随机爬取百度百科并返回爬取内容的标题

最近没什么事情,准备重新看一遍以前一知半解的爬虫
功能:以一个起始页开始,通过爬取网页简介的返回一个百度百科简介部分的,包含全部链接的列表,并且通过随机数,随机选取一个网站进入之后打印这个网站标题重复上述步骤递归,直到碰到一个简介中没有一个链接的百度百科网页
这里选择的初始百度百科网页是《JOJO的奇妙冒险》的百度百科,针对随机数选取采用的是随机数种子的做法,可以保证只要种子相同每次运行返回的网页标题就是相同的“随机的”网页
python学习|【python爬虫】随机爬取百度百科并返回爬取内容的标题
文章图片

首先观察一下百度百科的html
python学习|【python爬虫】随机爬取百度百科并返回爬取内容的标题
文章图片

可以看出来,简介部分的链接都是在div标签的里面并且用 之后代码如下

import random import re #import datetime#也可以用当前时间作为种子输入 from urllib.request import urlopen from bs4 import BeautifulSouprandom.seed(1231241231)#这里采用的种子def getLinks(articleUrl): html=urlopen('https://baike.baidu.com{}'.format(articleUrl)) bs=BeautifulSoup(html,'html.parser') name=(bs.find('dd',{'class':'lemmaWgt-lemmaTitle-title'}).find('h1')) print(name.get_text()) return bs.find('div',{'class':'lemma-summary'}).find_all('a',href=https://www.it610.com/article/re.compile('^(/item/)'))links=getLinks('/item/JOJO%E7%9A%84%E5%A5%87%E5%A6%99%E5%86%92%E9%99%A9/4422729') while len(links)>0: newArticle=links[random.randint(0,len(links)-1)].attrs['href'] links=getLinks(newArticle)

【python学习|【python爬虫】随机爬取百度百科并返回爬取内容的标题】运行这部分的代码结果如下:
python学习|【python爬虫】随机爬取百度百科并返回爬取内容的标题
文章图片

虽然知道最后结果可能会跟JOJO挂不上边儿,但能跑到这么远的地方我也是没想到

    推荐阅读