Scrapy爬虫无法抓取链接
我刚接触Scrapy,这里是我用来爬取twistedweb的网站爬虫代码。
class TwistedWebSpider(BaseSpider):
name = "twistedweb3"
allowed_domains = ["twistedmatrix.com"]
start_urls = [
"http://twistedmatrix.com/documents/current/web/howto/",
]
rules = (
Rule(SgmlLinkExtractor(),
'parse',
follow=True,
),
)
def parse(self, response):
print response.url
filename = response.url.split("/")[-1]
filename = filename or "index.html"
open(filename, 'wb').write(response.body)
当我运行 scrapy-ctl.py crawl twistedweb3
时,它只抓取了部分内容。
我获取了 index.html
的内容,尝试使用 SgmlLinkExtractor
来提取链接,结果提取出来的链接是我预期的,但这些链接无法继续访问。
你能告诉我哪里出错了吗?
假设我想获取css和javascript文件,我该怎么做呢?我的意思是,如何获取整个网站的内容?
1 个回答
4
rules
属性是属于 CrawlSpider
的。你应该使用 class MySpider(CrawlSpider)
来定义你的爬虫。同时,当你使用 CrawlSpider
的时候,不要重写 parse
方法,而是要使用 parse_response
或者其他类似的名字。