为了得到训练数据,我写了一个爬虫来跟踪Alexa上500强网站的深度为2,并将找到的所有链接写入一个文件。现在,它查找html中的所有链接并将它们写入一个文件。问题是,爬虫程序漏掉了所有指向广告的链接,其中一些链接位于iframes或CSS文件中。我怎样才能改变我的网络爬虫,使它抓取所有的链接,包括广告?相关代码可在下面找到。在
类爬虫程序(对象):def __init__(self, root, depth, locked=True):
self.root = root
self.depth = depth
self.locked = locked
self.host = urlparse.urlparse(root)[1]
self.urls = []
self.links = 0
self.followed = 0
def crawl(self):
#print " in crawl"
page = Fetcher(self.root)
q = Queue()
#print "made fetcher"
try:
page.fetch()
if page.urls == []:
print "Error: could not fetch urls for %s" % (self.root)
return
#raise KeyboardInterrupt
else:
target = open("output.txt", 'w