【发布时间】:2017-12-07 21:31:55
【问题描述】:
我正在尝试跟踪所有内部链接,同时跟踪网站的所有内部和外部链接。我刚刚开始使用 Scrapy,但我无法弄清楚如何在跟踪网站中的所有内部链接时进行爬网。
它只是获取深度一的链接,但不跟随它们。
class BRS(CrawlSpider):
name = "brs"
rules = (Rule(SgmlLinkExtractor(allow=()), callback='parse_obj', follow=True),)
def __init__(self):
global start_urls
#settings.overrides['DEPTH_LIMIT'] = 10
path = os.path.dirname(os.path.abspath(__file__))
with open(os.path.join(path,"urls.txt"), "rt") as f:
self.start_urls = filter(None,[url.strip() for url in f.readlines()])
start_urls = self.start_urls
def parse(self, response):
brsitem = BrsItem()
brsitem['url'] = response.url
internal = LinkExtractor(allow_domains=[response.url])
external = LinkExtractor(deny_domains=[response.url])
links = internal.extract_links(response)
internal = []
fd = open('output.txt','a+')
for link in links:
internal.append(link.url)
links = external.extract_links(response)
external = []
for link in links:
external.append(link.url)
for link in internal:
fd.write(link+"\tinternal\n")
for link in external:
fd.write(link+"\texternal\n")
return brsitem
截至目前,我的 urls.txt 包含:
http://www.stackoverflow.com
感谢任何帮助。
【问题讨论】: