最近在写scrapy框架的爬虫,爬百度百科词条
下面rules里面有两个rule,如果url是分类就继续爬,是item词条就解析
但是我现在运行时全都是爬取的baike.baidu.com/fenlei/分类页面,好像是一直在执行第一个rule就没有执行遇到item就解析的函数。
求助怎么解决??
谢谢各位大佬!!
class BaikeSpider(CrawlSpider):
name = "BaikeSpider"
allowed_domains = ['baike.baidu.com']
start_urls = ['https://baike.baidu.com']
rules = (
Rule(LinkExtractor(allow=(r'/fenlei/*', )), follow = True),
Rule(LinkExtractor(allow=(r'/item/*')), follow= False, callback="parse_item"),
)
def parse_item(self, response):
try:
content = response.css('body div.body-wrapper div.content-wrapper div div.main-content')
baike_item = SpiderProjectItem()
baike_item['itemTitle'] = "".join(content.css('dl dd h1::text').extract_first())
baike_item['itemUrls'] = response.url
baike_item['itemSummary'] = "".join(content.css('div.lemma-summary::text').extract_first())
return baike_item
except Exception as error:
logging.error(error)
运行结果部分如图:
我在设置里试过设置max_depth,但是还是没有爬到item??
多谢各位!!!
大佬,这个问题解决了么?我也遇到这个问题了,求助