2 heyi7949 heyi7949 于 2017.09.07 11:53 提问

python爬虫 BeautifulSoup

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

random.seed(datetime.datetime.now())
def getLinks(articleUrl):

html=urlopen("http://en.wikipedia.org" + articleUrl).read()
bsobj=BeautifulSoup(html,"html.parser")

return bsobj.find("div",{id:"bodyContent"}). find("a",{"href", re.compile("^(/wiki/)((?!:).)*$")})

links=getLinks("/wiki/kevin_Bacon")
while len(links)>0:
newArticle=links[random.randint(0,len(links)-1)].attrs["href"]
print(newArticle)
links=getLinks(newArticle)
图片说明

2个回答

eye_water
eye_water   2017.09.07 11:55

定位的节点没有find属性,你的节点可能定位错了。

oyljerry
oyljerry   Ds   Rxr 2017.09.07 13:51

bsobj.find("div",{id:"bodyContent"})
这个对象估计是None,没有找到页面对应的元素,所以后面find就出错了

Csdn user default icon
上传中...
上传图片
插入图片