您的位置:首页 > 编程语言 > Python开发

python爬虫学习第十四天

2017-08-07 22:19 211 查看
今天学习了一些爬虫的实际应用,具体请见练习题,练习3 我做的过程中看了两次书(之前已经阅读过一遍代码)不太熟练,明天开始之前在把这个练习做一遍。

练习1 维基百科中的所有链接(包含向其他词条的链接和不包含词条的页面的链接)

# from urllib.request import urlopen
# from bs4 import BeautifulSoup
# r = urlopen('http://en.wikipedia.org/wiki/Kevin_Bacon')
# bsObj = BeautifulSoup(r)
# links = bsObj.findAll('a')
# for link in links:
#   if 'href' in link.attrs:
#       print(link.attrs['href'])


练习2 维基百科上凯文 ·贝肯词条里所有指向其他词条的链接

# from urllib.request import urlopen
# from bs4 import BeautifulSoup
# import re

# r = urlopen('http://en.wikipedia.org/wiki/Kevin_Bacon')
# bsObj = BeautifulSoup(r)
# div1 = bsObj.find('div',{'id':'bodyContent'})
# links = div1.findAll('a',href = re.compile('^(/wiki/)((?!:).)*$'))
# for link in links:
#   if 'href' in link.attrs:
#       print(link.attrs['href'])


练习3

•一个函数 getLinks, 可以用维基百科词条 /wiki/< 词条名称 > 形式的 URL 链接作为参数,

然后以同样的形式返回一个列表,里面包含所有的词条 URL 链接。

• 一个主函数,以某个起始词条为参数调用 getLinks,再从返回的 URL 列表里随机选择 一个词条链接,

再调用 getLinks,直到我们主动停止,或者在新的页面上没有词条链接 了,程序才停止运行。

# from urllib.request import urlopen
# from bs4 import BeautifulSoup
# import random
# import datetime
# import re

# random.seed(datetime.datetime.now())

# def getLinks(articleurl):
#   url = "http://en.wikipedia.org"+articleurl
#   html = urlopen(url)
#   bsObj = BeautifulSoup(html)
#   links = bsObj.find('div',{'id':'bodyContent'}).findAll('a',href=re.compile('^(/wiki/)((?!:).)*$'))
#   return links
#   pass
# link = getLinks('/wiki/Kevin_Bacon')
# while len(link)>0:
#   newlink = link[random.randint(0,len(link)-1)].attrs['href']
#   print(newlink)
#   link = getLinks(newlink)


今天只有三个练习,但是第三个我做了两遍,因为感觉并没有掌握,明天再做一遍加深印象
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  python