def generate_forum_list(self, response):
forum_list = response.xpath('//a/@href').extract()
if len(forum_list) > 0:
for forum_url in forum_list:
url = re.search(u'http://www.18095.com/forum-\d{1,10}-1.html', forum_url)
if url is not None:
yield scrapy.Request(
forum_url,
meta={"page_key": 1},
callback=self.generate_forum_list
)
page_key = int(response.meta['page_key'])
rep_time_list = response.xpath('//tr/td[@class="by"]/em/a').extract()
if len(response.xpath('//span[@id="fd_page_bottom"]//a[@class="nxt"]/@href').extract()) != 0:
if page_key == 1 or self.check_rep_date(rep_time_list):
nxt_page = \
response.xpath('//span[@id="fd_page_bottom"]//a[@class="nxt"]/@href').extract()[0]
yield scrapy.Request(
nxt_page,
meta={"page_key": -1},
callback=self.generate_forum_list
)
thread_list = response.xpath('//a[contains(@class,"xst")]/@href').extract()
if len(thread_list) > 0:
logging.error(len(thread_list))
for thread_url in thread_list:
yield scrapy.Request(
thread_url,
callback=self.generate_forum_thread
)
评论列表
文章目录